gpt4 book ai didi

MySQL TRIGGER 语法,IF THEN INSERT

转载 作者:行者123 更新时间:2023-11-29 12:58:30 24 4
gpt4 key购买 nike

我想修改一个如下所示的工作触发器:

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 ;

关于MySQL TRIGGER 语法,IF THEN INSERT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23683948/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com