MySQL触发器创建报错:插入employee表时同步审计表失败
解决MySQL触发器字符串拼接语法错误
你的触发器报错是因为字符串拼接语法错误,MySQL不支持直接将字符串常量、变量和函数结果像代码里那样直接连写,必须使用CONCAT()函数来完成字符串拼接。
修正后的触发器代码:
CREATE TRIGGER empaftertrigger AFTER INSERT ON employee FOR EACH ROW INSERT INTO tbl_employee_audit (emp_id, audit_data) VALUES (new.emp_id, CONCAT('New employee with ID ', new.emp_id, ' was added on ', NOW()));
关键修改说明:
- 使用
CONCAT()函数替代直接拼接,将需要组合的字符串常量、new.emp_id变量、NOW()函数结果作为参数传入,参数之间用逗号分隔。 - 字符串常量建议使用单引号(MySQL中更标准,避免和双引号的模式冲突),如果你的SQL模式允许双引号,也可以保留双引号,但单引号兼容性更好。
内容的提问来源于stack exchange,提问作者Adeliz
相关产品推荐
相关产品推荐

