当我们需要用到触发器的时候,还是很方便,你会指定当我在操作某一事件时触发效果完成我所希望完成的事情;这就是触发器
MySQL触发器格式
CREATE TRIGGER trigger_name BEFORE|AFTER INSERT|UPDATE|DELETE ON table_name [FOR EACH ROW] BEGIN DECLARE arg_name1[,arg_name2,...] type [DEFAULT value] sql语句 END
Oracle触发器格式
CREATE [OR REPLACE] TRIGGER trigger_name BEFORE|AFTER INSERT|UPDATE|DELETE ON table_name [FOR EACH ROW] DECLARE arg_name type [CONSTANT] [NOT NULL] [:=value] BEGIN pl/sql语句 END
下面一个示例是我在删除某个数据库表数据时候,自动触发触发器备份数据表,并自动填充记录更新时间(UPDATE_TIME):
MySQL版本
create trigger 触发器名字 before delete on 源表名 for each row begin insert into 新表名(ID,表的字段)values(:old.id,:old.表的字段); end;
Oracle版本
create or replace trigger 触发器名字 before delete on 源表名 for each row begin insert into 新表名(ID,表的字段)values(:old.id,:old.表的字段); end;