Mysql 用于在添加时将欢迎消息添加到员工配置文件的触发器
我有这个示例数据库,在通过触发器将新员工添加到员工表中之后,我想将欢迎文本添加到两列中 但它给了我语法错误 以下是我的代码段尝试:Mysql 用于在添加时将欢迎消息添加到员工配置文件的触发器,mysql,triggers,Mysql,Triggers,我有这个示例数据库,在通过触发器将新员工添加到员工表中之后,我想将欢迎文本添加到两列中 但它给了我语法错误 以下是我的代码段尝试: DELIMITER$$ BEGIN after insert into employeenumber for each row, set action='update', set sms='welcome', set emails='welcome'; END END$$ DELIMITER; 您的语法中有几个错误。请尝试以下操作: CREATE TRIGGER
DELIMITER$$
BEGIN
after insert into employeenumber for each row,
set action='update',
set sms='welcome',
set emails='welcome';
END
END$$
DELIMITER;
您的语法中有几个错误。请尝试以下操作:
CREATE TRIGGER `afterEmployeeNumberInsert` before INSERT ON employeenumber
FOR EACH ROW BEGIN
SET NEW.action = 'update',
NEW.sms = 'welcome',
NEW.emails = 'welcome';
END
这是一张工作票
话虽如此,我不明白为什么需要触发器为插入的每一行插入相同的数据。当数据库可以为您执行工作时,您正在添加额外的代码
这里是mysql的链接
在插入触发器中,只能使用NEW.col_名称;没有旧的
划船
名为with OLD的列是只读的。你可以参考它(如果你有
选择权限),但不修改它。你可以参考一列
如果您具有“选择”权限,则使用“新建”命名。在以前
触发器,也可以使用SET NEW.col_name=value更改其值
如果你有更新权限。这意味着您可以使用
触发器修改要插入新行或用于
更新一行。(此类SET语句在AFTER触发器中无效。)
因为行更改将已经发生。)
错误是什么。为什么要使用触发器,为什么不将其与常规数据一起插入,或者让这些列具有默认值呢?MYSQL说:#1064-您的SQL syntx中有一个错误;检查与您的MYSQL服务器版本对应的手册,了解在插入到employeenumber后,在每行的第2行设置action='update',在“开始”附近使用的正确语法。我的其他2个问题呢?如果插入后每一行都有相同的数据,为什么还要麻烦使用触发器呢?为什么不为列使用默认值,或者在插入行时插入数据?非常感谢neel博士的关注。但是,我想说的是,我想通过触发器修改employee表中的相同列,并通过触发器将“欢迎”消息添加到接下来的sms和电子邮件列中。在Employees表中插入新行后,您无法更新在After触发器中插入的行。“在after触发器中不允许更新新行”。你必须使用之前。如果你看小提琴,结果是一样的