当我尝试在phpmyadmin中创建触发器时出现此错误。我做错了什么?
SQL查询:
CREATE TRIGGER ins_social
AFTER INSERT ON sa_users_social
FOR EACH ROW
BEGIN
INSERT INTO fsb2_users ( u_social_id, u_auth, u_nickname, u_email, u_avatar, u_signature, u_language, u_joined, u_sexe, u_rank_id )
VALUES ('NEW.social_id', '1', 'username', 'email', 'photoURL', 'description', 'fr', 'CURRENT_TIMESTAMP', 'gender', '0');
错误:
#1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以获得正确的语法 靠近''在第5行
答案 0 :(得分:0)
不喜欢存储过程,你不必把BEGIN ... END放在那里。你能删除BEGIN并再试一次吗?
或者,如果您需要将BEGIN放在那里,您可以这样做:
delimiter #
CREATE TRIGGER ins_social
AFTER INSERT ON sa_users_social
FOR EACH ROW
BEGIN
INSERT INTO fsb2_users ( u_social_id, u_auth, u_nickname, u_email, u_avatar, u_signature, u_language, u_joined, u_sexe, u_rank_id )
VALUES ('NEW.social_id', '1', 'username', 'email', 'photoURL', 'description', 'fr', 'CURRENT_TIMESTAMP', 'gender', '0');
END#
delimiter ;
另一个可能的错误是你在每个值周围放置单引号,这使它们作为varchars传递。在声明中,我猜u_social_id是一种数字类型,对吗?因此,您将varchar值传递给数字类型字段,这是一个问题。由于您没有在此处发布表结构。这只是猜测。 :)