数据库应用--触发器简介
文章描述:本文介绍了基于mysql数据库触发器的简单应用。
测试平台:mysql
触发器简介:
触发器是一种特殊类型的存储过程,它在指定的表中的数据发生变化时自动生效,唤醒调用触发器以响应 INSERT、UPDATE 或 DELETE 语句。
创建表tab1
CREATE TABLE tab1(
id CHAR(16)
);
创建表tab2
CREATE TABLE tab2(
id CHAR(16)
);
创建INSERT触发器
CREATE TRIGGER after_tab1_insert
AFTER INSERT ON tab1
FOR EACH ROW
BEGIN
INSERT INTO tab2(id) VALUES(new.id);
END
INSERT测试: 查看tab2是否同步添加
INSERT INTO tab1 (id) VALUES('123456');
创建UPDATE触发器
CREATE TRIGGER after_tab1_update
AFTER UPDATE ON tab1
FOR EACH ROW
BEGIN
UPDATE tab2 SET id = new.id where id = old.id;
END
UPDATE测试:查看tab2是否同步更新
UPDATE tab1 SET id='1234567890' WHERE id='123456';
创建DELETE触发器
CREATE TRIGGER after_tab1_delete
AFTER DELETE ON id1
FOR EACH ROW
BEGIN
DELETE FROM tab2 WHERE id=old.id;
END
DELETE测试: 查看tab2是否同步删除
DELETE FROM tab1 WHERE id='1234567890';
删除触发器
DROP TRIGGER after_tab1_insert;
DROP TRIGGER after_tab1_update;
DROP TRIGGER after_tab1_delete;
查看触发器
SHOW TRIGGERS;
上述方法显示内容太多,不太容易查看,可以在数据库中查看:
SELECT
TRIGGER_NAME,
EVENT_OBJECT_SCHEMA,
EVENT_OBJECT_TABLE
FROM
information_schema.`TRIGGERS`;
注意事项:
1.old是指更新前的值,new是指更新后的值;
2.创建触发器前需要修改分割符: DELIMITER
3.并在创建完成后恢复默认: DELIMITER ;