0

帮助 MySQL 触发器?我正在尝试在我的 SQL 中创建一个删除插入触发器......我到目前为止:

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 行的第一个 [ 上报告了一个语法错误......执行该行的正确方法是什么?

4

2 回答 2

0

详细阅读 MySQL 参考手册,尤其是Typographical and Syntax Conventions部分(从 line in syntax descriptions 开始,方括号(“[”和“]”)表示可选的词或子句。)。检查参考手册,您真正需要代码的第二行中的哪些部分。您可以将代码更改为(假设您想要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 语法的更多信息,请查看参考手册的使用触发器部分。

于 2013-04-27T05:54:49.803 回答
0

括号表示其中包含的任何内容都是可选的 - 命令运行不需要其中的任何内容,但可能是您想要使用的内容,具体取决于您使用该命令的目的。括号永远不要按字面意思使用,因此在执行命令时永远不要包含它们。

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

如果需要DEFINER更详细的描述,可以在CREATE TRIGGER 手册中找到。

于 2013-04-27T05:55:29.500 回答