在 mysql 中创建触发器时出现错误“1064”?
Posted
技术标签:
【中文标题】在 mysql 中创建触发器时出现错误“1064”?【英文标题】:error "1064" in trigger creation in mysql? 【发布时间】:2011-06-27 14:15:40 【问题描述】:在 mysql 中创建触发器时,我收到错误 1046。我的查询是:
CREATE TABLE test.Employee(
id int,
first_name VARCHAR(30),
last_name VARCHAR(15),
start_date DATE,
end_date DATE,
city VARCHAR(10),
description VARCHAR(15)
);
CREATE TABLE test.Employee_log(
id int,
first_name varchar(50),
last_name varchar(50),
start_date date,
end_date date,
city varchar(50),
description varchar(50),
Lasinserted Time
);
当我在下面执行时,它给出了错误:
Error Code : 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'END$$
delimiter' at line 1
(16 ms taken)
delimiter $$
CREATE TRIGGER test.Employee_Trigger
AFTER insert ON test.employee
FOR EACH ROW
BEGIN
insert into test.employee_log values(new.id,new.first_name,
new.last_name,new.start_date,new.end_date,
new.city,new.description,curtime());
END$$
delimiter ;
如果有人可以请帮助,将不胜感激。
谢谢 尤加尔
【问题讨论】:
【参考方案1】:触发器既不是例程也不是存储过程,
所以不需要BEGIN...END
,加上表名区分大小写
CREATE TRIGGER Employee_Trigger
AFTER insert ON Employee
FOR EACH ROW
INSERT INTO test.Employee_log values(new.id,new.first_name,
new.last_name,new.start_date,new.end_date,
new.city,new.description,curtime());
【讨论】:
我不知道它对你有什么作用,但它对我不起作用。:(以上是关于在 mysql 中创建触发器时出现错误“1064”?的主要内容,如果未能解决你的问题,请参考以下文章
在 MySQL 5.6.27 中创建触发器时出现奇怪的错误 [重复]