【触发器和存储过程的区别】
存储过程:必须调用才能执行;
触发器:通过事件触发自动执行;
【示范】
实际应用在日志中,比如记录person_table表有哪些行为(数据增加,删除,修改)等,新建一个日志表
字段为:操作人,操作行为,操作时间
CREATE TABLE logtest_table (man VARCHAR(50),edit VARCHAR(100),TIME VARCHAR(99));
给person_table表绑定出发器,把操作行为添加到logtest_table 表中
inserting :监听新增数据的事件
updating :监听修改的数据的事件
deleting:监听删除数据的事件
create or REPLACE TRIGGER person_t_trigger AFTER DELETE OR INSERT OR UPDATE ON person_table DECLARE operation logtest_table.man%TYPE; BEGIN IF inserting THEN operation:='添加操作'; ELSIF updating THEN operation:='更新操作'; ELSIF deleting THEN operation:='删除操作'; END IF INSERT INTO logtest_table VALUES(USER,operation,to_char(SYSDATE,'yyyy-mm-dd hh24:mi:ss')); END;
当person_table表中数据发生变化的时候,数据不会自动记录到logtest_table表中
学习链接:数据库第36讲PLSQL触发器_哔哩哔哩_bilibili