作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想修改一个如下所示的工作触发器:
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/
我是一名优秀的程序员,十分优秀!