2016-12-14 561 views
-2

我正在尝试编写一个触发器来检查表A是否存在任何插入或更新记录,并将使用新记录更新我的表B但出现错误:错误代码:1064.您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册以使用正确的语法

错误代码:1064.您的SQL语法错误;检查对应于你的MySQL服务器版本的手册正确的语法使用

下面是我的表:

create table A(count int, trigger_name varchar(25)); 
create table B(trigger_name varchar(25), time_created Timestamp); 

这里是我的触发器:

create trigger record_after_insert after insert on A for each row 
Begin 
insert into B values (NEW.trigger_name, sysdate()); 
End; 

我使用MySQL版本5.7.13。提前致谢。

+0

那么,你检查手册? – dfundako

回答

2
DELIMITER $$ 
CREATE TRIGGER `record_after_insert` AFTER INSERT ON `A` 
FOR EACH ROW 
BEGIN 
insert into B values (NEW.trigger_name, sysdate()); 
END $$ 
DELIMITER ; 
+0

我尝试了你提到的解决方案,但那也不算什么,现在我得到了超级权限错误。我尝试设置SET GLOBAL log_bin_trust_function_creators = 1;但这也是我无法运行,因为它说我没有超级特权。 –

+0

我正在尝试上面的mysql工作台 –

+0

您的MySQL帐户需要SUPER权限。请参阅文档:http://dev.mysql.com/doc/refman/5.7/en/create-trigger.html – user3606329

0

我没有在授予特权后能够运行触发器语句的数据库运行触发器的权限。

相关问题