觸發器說明
案例1:
觸發器
DELIMITER $$
/**
觸發器功能:
當test0表添加一條數據時,test1表中也添加一條相同的數據
觸發器名稱:test0_to_test1_insert 表1 test0 表2 test1
**/
DROP TRIGGER test0_to_test1_insert $$
CREATE
TRIGGER test0_to_test1_insert AFTER INSERT
ON test0
FOR EACH ROW BEGIN
-- INSERT INTO test1 (name,fid) VALUES ((SELECT name FROM test0 ORDER BY id DESC LIMIT 1),(SELECT id FROM test0 ORDER BY id DESC LIMIT 1));
INSERT INTO test1 (fid,name) VALUES (new.id,new.name);
END$$
DELIMITER ;
/**
觸發器功能:
當test0表刪除一條數據時,test1表中也刪除一條相同的數據
觸發器名稱:test0_to_test1_delete 表1 test0 表2 test1
**/
DELIMITER $$
DROP TRIGGER test0_to_test1_delete $$
CREATE TRIGGER test0_to_test1_delete BEFORE DELETE
ON test0
FOR EACH ROW BEGIN
DELETE FROM test1 where fid=old.id;
END$$
DELIMITER ;
/**
觸發器功能:
當test0表更新一條數據時,test1表中也更新一條相同的數據
觸發器名稱:test0_to_test1_update 表1 test0 表2 test1
**/
DELIMITER $$
DROP TRIGGER test0_to_test1_update $$
CREATE TRIGGER test0_to_test1_update BEFORE UPDATE
ON test0
FOR EACH ROW BEGIN
UPDATE test1 set name=new.name where fid=new.id;
END$$
DELIMITER ;
測試sql:
/** 查詢觸發器**/
SELECT * FROM information_schema.`TRIGGERS`
/**添加**/
INSERT INTO test0 (age,name) VALUES ('58','66666');
/**刪除**/
DELETE FROM test0 WHERE id=18
/**更新**/
UPDATE test0 SET name ='測試更新記錄' WHERE id=19
/**查詢**/
SELECT name FROM test0 ORDER BY id DESC LIMIT 1