mysql 觸發(fā)器語法與應(yīng)用示例
本文實(shí)例講述了mysql 觸發(fā)器語法與應(yīng)用。分享給大家供大家參考,具體如下:
例子:創(chuàng)建觸發(fā)器,記錄表的增、刪、改操作記錄
//創(chuàng)建user表;DROP TABLE IF EXISTS `user`;CREATE TABLE `user` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `account` varchar(255) DEFAULT NULL, `name` varchar(255) DEFAULT NULL, `address` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8; //創(chuàng)建對user表操作歷史表DROP TABLE IF EXISTS `user_history`;CREATE TABLE `user_history` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `user_id` bigint(20) NOT NULL, `operatetype` varchar(200) NOT NULL, `operatetime` datetime NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
DELIMITER:改變輸入的結(jié)束符,默認(rèn)情況下輸入結(jié)束符是分號;,這里把它改成了兩個(gè)分號;;,這樣做的目的是把多條含分號的語句做個(gè)封裝,全部輸入完之后一起執(zhí)行,而不是一遇到默認(rèn)的分號結(jié)束符就自動執(zhí)行;
new:當(dāng)觸發(fā)插入和更新事件時(shí)可用,指向的是被操作的記錄 old: 當(dāng)觸發(fā)刪除和更新事件時(shí)可用,指向的是被操作的記錄INSERT:
DROP TRIGGER IF EXISTS `tri_insert_user`;DELIMITER ;;CREATE TRIGGER `tri_insert_user` AFTER INSERT ON `user` FOR EACH ROW begin INSERT INTO user_history(user_id, operatetype, operatetime) VALUES (new.id, ’add a user’, now());end;;DELIMITER ;
UPDATE:
DROP TRIGGER IF EXISTS `tri_update_user`;DELIMITER ;;CREATE TRIGGER `tri_update_user` AFTER UPDATE ON `user` FOR EACH ROW begin INSERT INTO user_history(user_id,operatetype, operatetime) VALUES (new.id, ’update a user’, now());end;;DELIMITER ;
DELETE:
DROP TRIGGER IF EXISTS `tri_delete_user`;DELIMITER ;;CREATE TRIGGER `tri_delete_user` AFTER DELETE ON `user` FOR EACH ROW begin INSERT INTO user_history(user_id, operatetype, operatetime) VALUES (old.id, ’delete a user’, now());end;;DELIMITER ;
更多關(guān)于MySQL相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《MySQL查詢技巧大全》、《MySQL事務(wù)操作技巧匯總》、《MySQL存儲過程技巧大全》、《MySQL數(shù)據(jù)庫鎖相關(guān)技巧匯總》及《MySQL常用函數(shù)大匯總》
希望本文所述對大家MySQL數(shù)據(jù)庫計(jì)有所幫助。
相關(guān)文章:
1. Mybatis查詢方法如何實(shí)現(xiàn)沒有返回值2. centos 7安裝mysql5.5和安裝 mariadb使用的命令3. MySQL 千萬級數(shù)據(jù)量如何快速分頁4. 輕松解決SQL Server 2005中的常見問題5. 數(shù)據(jù)庫人員手冊之ORACLE應(yīng)用源碼6. DB2 XML 全文搜索之為文本搜索做準(zhǔn)備7. mssql鎖基礎(chǔ)教程8. 快速解決mysql導(dǎo)出scv文件亂碼、躥行的問題9. 用SQL SERVER記錄站點(diǎn)日志10. MySQL基礎(chǔ)教程9 —— 函數(shù)之日期和時(shí)間函數(shù)
