繁体   English   中英

MySQL删除触发器中的语法错误

[英]Syntax error in MySQL delete trigger

帮助MySQL触发器? 我正在尝试在SQL中创建一个on delete插入触发器...到目前为止,我已经:

CREATE
[DEFINER = {user| CURRENT_USER }]
TRIGGER ProjectDoneTrigger After Delete
ON Project FOR EACH ROW insert into projectover values(old.projectID,old.name,
old.Department,old.MaxHours, old.StartDate,
old.EndDate);

但是,MySQL在第一个[第2行...上报告语法错误。做这行的正确方法是什么?

详细阅读《 MySQL参考手册》,尤其是“ 印刷和语法约定”部分(从第1行开始。 在语法描述中,方括号(“ [”和“]”)表示可选的单词或从句 )。 查阅参考手册,这是您代码第二行中真正需要的部分。 您可以将代码更改为(假设您希望使用TRIGGER语句为默认值):

CREATE TRIGGER ProjectDoneTrigger AFTER DELETE ON Project 
FOR EACH ROW
INSERT INTO projectover 
VALUES (old.projectID,old.name, old.Department,old.MaxHours, 
old.StartDate, old.EndDate);

有关TRIGGER语法的更多信息,请参见《参考手册》的“ 使用触发器”部分。

方括号表示其中包含的内容是可选的-命令执行功能不需要任何内容​​,但可能要使用的内容取决于您使用命令的目的。 绝对不要使用方括号,因此在执行命令时也不要包含方括号。

仅当您要指定在触发器激活时检查访问权限时要使用的MySQL帐户时, DEFINER部分才有用。 我会说这是一个高级主题,除非您知道自己需要它,否则应将其排除在外。

如果需要更详细地描述DEFINER功能,请参阅CREATE TRIGGER手册

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM