《Mysql學(xué)習(xí)MySQL觸發(fā)器 Update觸發(fā)Insert失敗》要點:
本文介紹了Mysql學(xué)習(xí)MySQL觸發(fā)器 Update觸發(fā)Insert失敗,希望對您有用。如果有疑問,可以聯(lián)系我們。
今天工作需要,想要實現(xiàn)將僅對狀態(tài)更新的表進行歷史記錄顯示,于是考慮在原表中建立觸發(fā)器,將更新的內(nèi)容同時寫入另一張表
MYSQL實例
于是進行測試
MYSQL實例
--建立測試表CREATE TABLE `triggletest_triggle` ( `id` INT(11) NOT NULL, `name` VARCHAR(5) NULL DEFAULT NULL, PRIMARY KEY (`id`) ) COLLATE='latin1_swedish_ci' ENGINE=InnoDB --建立目標表 CREATE TABLE `triggletest` ( `seq` INT(11) NOT NULL, `id` INT(11) NOT NULL, `name` VARCHAR(5) NULL DEFAULT NULL, PRIMARY KEY (`seq`), INDEX `id` (`id`) ) COLLATE='latin1_swedish_ci' ENGINE=InnoDB; ---寫入測試數(shù)據(jù) INSERT INTO `triggletest_triggle` VALUES(1,'A'); --建立觸發(fā)器 DROP TRIGGER if EXISTS test1 CREATE TRIGGER test1 AFTER UPDATE ON triggletest_triggle FOR EACH ROW BEGIN INSERT INTO triggletest(id) values (new.id); END
執(zhí)行觸發(fā)器語句,報錯,報錯內(nèi)容如下:
MYSQL實例
/* SQL錯誤(1064):You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CREATE TRIGGER test1 AFTER UPDATE ON triggletest_triggle FOR EACH ROW BEGIN ' at line 2 */ ---最終實現(xiàn)代碼 DROP TRIGGER if EXISTS test1; CREATE TRIGGER test1 AFTER UPDATE ON test.triggletest_triggle FOR EACH ROW BEGIN INSERT INTO triggletest(id,name) values (new.id,new.name); END;
分析,由于拜訪工具HediSQL,導(dǎo)致無法正常創(chuàng)建觸發(fā)器,相同語句,在HediSQL中執(zhí)行,報錯,使用shell調(diào)用mysql,直接執(zhí)行程序,成功.
MYSQL實例
維易PHP培訓(xùn)學(xué)院每天發(fā)布《Mysql學(xué)習(xí)MySQL觸發(fā)器 Update觸發(fā)Insert失敗》等實戰(zhàn)技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養(yǎng)人才。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.fzlkiss.com/jiaocheng/12711.html