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 中创建表、序列、自增字段、添加注释、添加记录、添加触发器、...在上面的示例代码中,创建了两个同义词 `dcs_category` 和 `dcs_category_tl`,以便于访问表 `dcs.dcs_category` 和 `dcs.dcs_category_tl`。
Oracle触发器调用Java程序 Oracle触发器是Oracle数据库中...这将创建一个名为OracleTriggerJava的Java类,该类包含两个方法:main方法和modify方法。main方法用于文件的写入操作,而modify方法则用于文件的读写操作。
修改磁盘映射关系:两块磁盘都需要配置。添加完成关闭 Linux 系统,找到虚拟机位置。然后修改 vmx 文件,(具体以实际命名为主)。用记事本打开并添加内容(做之前备份这个文件): scsi1:1.deviceType = "disk" ...
多线程、多连接:可以创建多个会话/连接,多个会话可以同时运行,在运行过程中可以掌控其运行状态、可以随时中断之,在运行过程中可以继续从事编辑等工作,不必等待运行完毕才能编辑 o 提供对常用数据字典(如 ...
EXP_FULL_DATABASE, IMP_FULL_DATABASE这两个角色用于数据导入导出工具的使用。 自定义角色 Oracle建议我们自定义自己的角色,使我们更加灵活方便去管理用户 创建角色 SQL> create role admin; 授权给...
§4.1.1 使用视图来修改表中数据 128 §4.1.2 创建一个新视图 128 §4.1.3 删除一个视图 130 §4.1.4 改变视图 131 §4.2 实体视图(MATERIALIZED VIEW) 131 §4.2.1 创建实体视图 131 §4.2.2 创建实体视图日志 137 ...
在基于客户/服务器结构的Oracle系统中,采用了双层控制模式来实现数据的各种完整性,即在服务器端的R DBMS和客户端的Developer应用程序两层次上提供完整性控制。前者负责实现与数据模型有关及影响面较广的完整性,后...
在ORACLE关系数据库系统中,SQL*FORM是一个功能强大的第四代语言开发工具,也是数据录入和查询、修改程序的快速生成工具。SQL*FORM中的触发器是指在执行FORM时,由某些事件触发而执行的一条命令或一组命令。它为保证...
2 替代触发器:由于在ORACLE里,不能直接对由两个以上的表建立的视图进行操作。所以给出了替代触发器。它就是ORACLE 8专门为进行视图操作的一种处理方法。 3系统触发器:ORACLE 8i 提供了第三种类型的触发器叫...
7. tablespace 表空间:一个或多个数据文件的逻辑组成。 ..... 8. redo log file 重做日志文件............................. 9. control file 控制文件 ................................. 10. parameter file 初始...
《精通SQ:结构化查询语言详解》全面讲解SQL语言,提供317个典型应用,读者可以随查随用,针对SQL Server和Oracle进行讲解,很有代表性。 全书共包括大小实例317个,突出了速学速查的特色。《精通SQ:结构化查询语言...
包括3个Oracle工具软件--Hora,ER图和PL/SQL调试器,新版本能和WinXP更好的融合在一起,支持winxp的主题风格,Hora引入了两个崭新的功能——导入/导出和报表功能。帮助Oracle数据库服务器管理员来管理服务器,也...
(6)若视图是由两个以上的基表导出的,此视图不允许更新; (7)一个不允许更新的视图上定义的视图也不允许更新; 本表的行列子集视图一般是可更新的。若视图的属性来自集函数、表达式,则该视图肯定是不可以更新...
外键约束是保证一个或两个表之间的参照完整性,外键是构建于一个表的两个字段或是两个表的两个字段之间的参照关系。 也就是说从表的外键值必须在主表中能找到或者为空。 当主表的记录被从表参照时,主表的记录将不...
同时注意语句重启动问题,即某一数据使用了触发器,用户 1 和用户 2 同时修改该数据,用户 2 被阻塞,用户 1 提交数据后,用户 2 才能对其操作, 这时用户 2 的触发器执行了两次,一次是原始条件的触发,第二次是...
一个数据库可以包含一个或多个命名的模式,一个模式内可以包含多个表。不同的模式中的表名可以相 同,而同一模式中的表不能同名。模式如同操作系统级的目录,但是模式不能嵌套。 用户在相应权限控制下可以访问所连接...
--分组的时候,还可以按照多个字段进行分组,两个字段不相同的为一组 56、select ename from emp where sal = (select max(sal) from emp); --求出 57、select deptno, max(sal) from emp group by deptno; --...
xdebug.profiler_enable_trigger = off ;xdebug.profiler_output_name = cachegrind.out.%t.%p ;工作目录 ;xdebug.profiler_output_dir = "D:/develop/php-5.5.20/tmp" ------------------------------------------...