如何解决如何与触发器代码保持和谐的触发器DDL?
我正在尝试使用以下方法在数据库工作台(Lite,对于MySQL)中创建触发器:
delimiter //
CREATE TRIGGER employeesTableInsert AFTER INSERT ON EMPLOYEES FOR EACH ROW
SET NEW.CREATED = CURRENT_TIMESTAMP; END IF;//
但是,当我尝试创建新的触发器时,却得到了这个错误消息:
这似乎很奇怪;我查看了数据库工作台中的DDL选项卡,它具有以下内容:
为什么在(只读)DDL中将我的触发代码加倍并处理?
如一开始所示,我的触发器代码仅包含上面显示的内容:
那么我的代码有问题吗,还是因为DDL选项卡混乱了?还是我的代码使DDL标签变得混乱,还是什么?
解决方法
如果只想更新您需要遵循的值。
您不能在没有BEGIN和END的情况下使用SET,这不是查询。
我想知道为什么您的代码中有一个END IF
编辑我还将您的TRIGGER更改为INSERT INSERT,因为在那里您可以更改NEW列的值(请参见Bill Karwin的评论)
实际上,您不需要触发器,请参见manual
DELIMITER //
CREATE TRIGGER employeesTableInsert BEFORE INSERT ON EMPLOYEES
FOR EACH ROW
BEGIN
SET NEW.CREATED = CURRENT_TIMESTAMP;
END//
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。