`
zjx2388
  • 浏览: 1338602 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

oracle trigger 两个表 同时修改

阅读更多

 

ORACLE产生数据库触发器的语法为:

create [or replace] trigger 触发器名 触发时间 触发事件

on 表名

[for each row]

pl/sql 语句

 

其中:

触发器名:触发器对象的名称。由于触发器是数据库自动执行

的,因此该名称只是一个名称,没有实质的用途。

触发时间:指明触发器何时执行,该值可取:

before---表示在数据库动作之前触发器执行;

after---表示在数据库动作之后出发器执行。

触发事件:指明哪些数据库动作会触发此触发器:

insert:数据库插入会触发此触发器;

update:数据库修改会触发此触发器;

delete:数据库删除会触发此触发器。

表 名:数据库触发器所在的表。

for each row:对表的每一行触发器执行一次。如果没有这一

选项,则只对整个表执行一次。

 

举例:下面的触发器在更新表auths之前触发,目的是不允许在

周末修改表:

create trigger auth_secure

before insert or update or delete //对整表更新前触发

on auths

begin

if(to_char(sysdate,'DY')='SUN'

RAISE_APPLICATION_ERROR(-20600,'不能在周末修改表auths');

end if;

end

================================
自己的一个触发器例子。
说明:有t_price_gathering表和t_person表,其中t_price_gathering表的pg_telphone字段引用自t_person表的phone字段,当t_person表修改了phone字段的时候,需要级联修改pg_telphone字段

create or replace trigger price_gathering
after update on t_person
for each row
when (NEW.phone <> OLD.phone )
begin
update t_price_gathering set t_price_gathering.pg_telphone =:NEW.phone where t_price_gathering.pg_telphone =:OLD.phone and  t_price_gathering.PG_IDENTITY_FLAG = 1;
end trg_upd;

分享到:
评论

相关推荐

    Oracle Trigger

    为了保持这两个表之间数据的一致性,我们可以创建一个触发器来自动更新`order`表中的冗余数据。 下面是一个具体的触发器示例: ```sql CREATE OR REPLACE TRIGGER bj_customer BEFORE UPDATE ON customer FOR EACH...

    Oracle 11i 表结构

    3. **多对多**:两个表之间存在多对多的关系时,通常会引入第三个表(关联表)来连接它们,该关联表中包含两个表的主键作为其外键。 #### 四、触发器的设置 触发器是一种特殊类型的存储过程,它被定义为当特定事件...

    利用 Oracle 系统触发器防止误删除表操作

    ### 利用Oracle系统触发器防止误删除表操作 #### 背景介绍 在企业级应用中,数据库的安全性和稳定性至关重要。Oracle作为一款广泛使用的数据库管理系统,提供了丰富的功能来保障数据安全。其中,系统触发器是Oracle...

    oracle 系统表大全

    - 联合使用两个视图获取特定表的索引及其列信息: - `SELECT i.index_name, i.uniqueness, c.column_name FROM user_indexes i, user_ind_columns c WHERE i.index_name = c.index_name AND i.table_name = 'ACC_...

    Oracle 词汇表

    - 外键(Foreign Key):关联两个表的列,用于实现引用完整性。 - 视图(View):虚拟表,由SQL查询结果组成,可以像操作真实表一样操作视图。 - 存储过程(Stored Procedure):预编译的SQL和PL/SQL代码集合,可...

    Oracle通过触发器或者同义词避免用户修改表结构

    在Oracle数据库管理中,保护表结构的完整性和稳定性至关重要,特别是对于多用户环境下的系统,我们需要确保用户只能访问数据而不能随意更改表结构。本文将详细介绍如何通过触发器和同义词来避免用户修改表结构,这两...

    关于oracle触发器before和after的应用问题

    本文旨在深入解析Oracle触发器中的Before和After两种触发时机,以及它们在数据库管理和维护中的具体应用。 #### 触发器概述 触发器类似于过程和函数,具有声明、执行和异常处理的部分,但其独特之处在于由特定事件...

    Oracle官方文档CHM合集-SQL参考手册 Oracle教程 Oracle开发

    联接(JOIN)操作,如INNER JOIN、LEFT JOIN、RIGHT JOIN和FULL OUTER JOIN,用于合并两个或更多表的数据。 6. **事务与并发控制**:Oracle支持事务(TRANSACTION),确保数据的一致性和完整性。同时,Oracle使用...

    oracle创建表空间

    - **授予 CONNECT 和 RESOURCE 角色**:这两个角色包含了创建和管理数据库对象的基本权限。 ```sql GRANT CONNECT, RESOURCE TO test; ``` - **授予 DBA 角色**:DBA 角色拥有所有系统级权限,包括管理数据库...

    oracle SQL语法大全

    内连接(INNER JOIN)返回两个表中匹配的行,外连接(LEFT JOIN, RIGHT JOIN, FULL JOIN)则包含不匹配的行。例如`SELECT * FROM table1 INNER JOIN table2 ON table1.key = table2.key;` Oracle SQL支持子查询,即嵌套...

    Oracle中创建表,创建序列,创建自增字段,添加注释, 添加记录,添加触发器,提交

    Oracle 中创建表、序列、自增字段、添加注释、添加记录、添加触发器、...在上面的示例代码中,创建了两个同义词 `dcs_category` 和 `dcs_category_tl`,以便于访问表 `dcs.dcs_category` 和 `dcs.dcs_category_tl`。

    oracle初学者必知的100个问题

    连接是SQL语句中用来结合两个或多个表中相关行的操作。Oracle支持多种类型的连接,如内连接、外连接等。 29. 如何使用连接查询? 通过在SELECT语句中使用JOIN关键字来实现连接查询,指定连接的表和连接条件。 30. ...

    OracleSQL必备参考

    包括内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)和全连接(FULL JOIN),它们用于合并两个或更多表的数据。 4. **聚合函数**:如COUNT、SUM、AVG、MAX和MIN等,用于对一组值进行计算,提供...

    ORACLE学习

    Oracle数据库中有两个非常重要的用户:`sys`和`system`。 - **sys**:超级用户,拥有最高的权限,包括创建数据库的权限。`sys`用户包含所有Oracle的数据字典,对于Oracle的正常运行至关重要。 - **system**:管理...

    个人亲测oracle触发器调用java程序

    Oracle触发器调用Java程序 Oracle触发器是Oracle数据库中...这将创建一个名为OracleTriggerJava的Java类,该类包含两个方法:main方法和modify方法。main方法用于文件的写入操作,而modify方法则用于文件的读写操作。

    oracle_11gR212

    例如,当你在一个表上执行操作,而这个操作又影响到另一个表,级联触发器可以确保两个表的数据一致性。这在多表关联和复杂业务逻辑中非常有用。 在“oracle_11gR2_12 触发器TRIGGER - 介绍,创建,使用,级联(删除,...

    Oracle OCP 考试常见单词词汇

    9. **Foreign Key**:外键,用于建立两个表之间的关联,参照完整性的一种实现方式。 10. **Join**:连接,将两个或多个表中的数据合并成一个结果集。 11. **View**:视图,虚拟表,基于一个或多个表的查询结果,...

    oracle触发器

    - `:new` 和 `:old` 是两个伪记录,分别代表新值和旧值,在`UPDATE`操作中特别有用。 #### 触发器的管理和控制 除了创建触发器外,Oracle还提供了丰富的命令来管理它们: - **查看触发器状态**:使用 `SELECT ...

    一个oracle客户端(oracle sql handler)

    多线程、多连接:可以创建多个会话/连接,多个会话可以同时运行,在运行过程中可以掌控其运行状态、可以随时中断之,在运行过程中可以继续从事编辑等工作,不必等待运行完毕才能编辑 o 提供对常用数据字典(如 ...

    Oracle习题集..

    6. 存储过程(PROCEDURE)与函数(FUNCTION):这两个是PL/SQL中封装复杂逻辑的结构。习题会涉及如何定义、调用存储过程和函数,以及返回值的处理。 7.游标(CURSOR):游标用于处理查询结果集,尤其在循环遍历数据...

Global site tag (gtag.js) - Google Analytics