mysql 觸發(fā)器語(yǔ)法與應(yīng)用示例
本文實(shí)例講述了mysql 觸發(fā)器語(yǔ)法與應(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)建對(duì)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é)束符是分號(hào);,這里把它改成了兩個(gè)分號(hào);;,這樣做的目的是把多條含分號(hào)的語(yǔ)句做個(gè)封裝,全部輸入完之后一起執(zhí)行,而不是一遇到默認(rèn)的分號(hào)結(jié)束符就自動(dòng)執(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存儲(chǔ)過(guò)程技巧大全》、《MySQL數(shù)據(jù)庫(kù)鎖相關(guān)技巧匯總》及《MySQL常用函數(shù)大匯總》
希望本文所述對(duì)大家MySQL數(shù)據(jù)庫(kù)計(jì)有所幫助。
相關(guān)文章
MySQL數(shù)據(jù)庫(kù)如何正確設(shè)置主鍵
主鍵是用于唯一標(biāo)識(shí)數(shù)據(jù)庫(kù)表中每一行數(shù)據(jù)的一列或一組列,主鍵可以確保數(shù)據(jù)的唯一性和完整性,這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫(kù)如何正確設(shè)置主鍵的相關(guān)資料,需要的朋友可以參考下2024-04-04MyEclipse連接MySQL數(shù)據(jù)庫(kù)圖文教程
這篇文章主要為大家詳細(xì)介紹了MyEclipse連接MySQL數(shù)據(jù)庫(kù)圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10運(yùn)用mysqldump 工具時(shí)需要注意的問(wèn)題
用mysqldump 導(dǎo)出 Trigger 的時(shí)候遇到一個(gè)問(wèn)題,貼出來(lái),以免大家犯錯(cuò)。2009-07-07mysql 8.0.16 winx64.zip安裝配置方法圖文教程
這篇文章主要為大家詳細(xì)介紹了mysql 8.0.16 winx64.zip安裝配置方法圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05mysql如何實(shí)現(xiàn)多行查詢結(jié)果合并成一行
利用函數(shù):group_concat(),實(shí)現(xiàn)一個(gè)ID對(duì)應(yīng)多個(gè)名稱時(shí),原本為多行數(shù)據(jù),把名稱合并成一行2013-12-12