[英]MySQL TRIGGER syntax, IF THEN INSERT
我想修改一個看起來像這樣的工作觸發器:
CREATE TRIGGER j_update BEFORE UPDATE ON d
FOR EACH ROW
INSERT INTO j (
stampOld, stampNew
)
VALUES (
OLD.stamp, NEW.stamp
);
僅在IF語句成功時執行。 我無法為此修改獲得正確的語法。
我正在努力實現以下目標:
CREATE TRIGGER j_update BEFORE UPDATE ON d
FOR EACH ROW
IF (1=1) THEN
INSERT INTO d (
stampOld, stampNew
)
VALUES (
OLD.stamp, NEW.stamp
); /* <--- LINE 21 */
END IF;
結果:錯誤1064:在第21行的“”附近檢查正確的語法
我嘗試過的事情:
IF ... END IF;
在BEGIN .. END;
我正在為RHEL使用MySQL 5.0.95。
任何幫助是極大的贊賞。
嘗試這個
delimiter //
CREATE TRIGGER j_update BEFORE UPDATE ON d
FOR EACH ROW
BEGIN
IF 1=1 THEN
INSERT INTO d (
stampOld, stampNew
)
VALUES (
OLD.stamp, NEW.stamp
);
END IF;
END; //
delimiter ;
這是我剛在mysql上嘗試過的,但是其更新與您的邏輯幾乎相同
mysql> delimiter //
mysql> create trigger tbl_two_ins
-> after insert on tabletwo
-> for each row
-> begin
-> if 1=1 then
-> update tableone t1 set t1.tb2_id = new.tab2_id where t1.tb1_id = new.tb1_id ;
-> end if ;
-> end ; //
Query OK, 0 rows affected (0.56 sec)
mysql> delimiter ;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.