在一张表上不能同时建立2个相同类型的触发器,因此在一个表上最多建立6个触发器(trigger_time+trigger_event一共有6种排列组合)

1. Oracle

数据库触发器是一个与表相关联的、存储的 PL/SQL 程序。每当一个特定的数据操作语句(Insert,update,delete)在指定的表上发出时,Oracle 自动地执行触发器中定义的语句序列。

  1. CREATE [or REPLACE] TRIGGER 触发器名
  2. BEFORE | AFTER
  3. [DELETE ][[or] INSERT] [[or]UPDATE [OF 列名]]
  4. ON 表名
  5. [FOR EACH ROW ][WHEN(条件) ]
  6. declare
  7. ……
  8. begin
  9. PLSQL
  10. End

2. MySQL

  1. CREATE TRIGGER trigger_name trigger_time trigger_event ON tb_name FOR EACH ROW trigger_stmt
  2. trigger_name:触发器的名称
  3. tirgger_time:触发时机,为BEFORE或者AFTER
  4. trigger_event:触发事件,为INSERTDELETE或者UPDATE
  5. tb_name:表示建立触发器的表明,就是在哪张表上建立触发器
  6. trigger_stmt:触发器的程序体,可以是一条SQL语句或者是用BEGINEND包含的多条语句
  7. 所以可以说MySQL创建以下六种触发器:
  8. BEFORE INSERT,BEFORE DELETE,BEFORE UPDATE
  9. AFTER INSERT,AFTER DELETE,AFTER UPDATE