什么';这个MySQL触发器怎么了?

什么';这个MySQL触发器怎么了?,mysql,triggers,Mysql,Triggers,那么这个触发器有什么问题呢?MySQL很好地告诉我这是一个1064错误 DELIMITER | CREATE TRIGGER new_member BEFORE INSERT on member FOR EACH ROW BEGIN INSERT INTO party(PartyId, PartyTypeCode, DateCreated, DateUpdated)      VALUES(New.PartyId, ’M’,now(), now()); END; | DELIMIT

那么这个触发器有什么问题呢?MySQL很好地告诉我这是一个1064错误

DELIMITER |

CREATE TRIGGER new_member BEFORE INSERT on member
FOR EACH ROW BEGIN
    INSERT INTO party(PartyId, PartyTypeCode, DateCreated, DateUpdated) 
     VALUES(New.PartyId, ’M’,now(), now());
END;
|

DELIMITER ;

我猜您的问题是
值中的非ASCII引号:

VALUES(New.PartyId, ’M’,now(), now());
-- -----------------^
尝试使用普通的旧单引号,如SQL所期望的:

VALUES(New.PartyId, 'M', now(), now());

你能这么客气地告诉我们确切的错误吗?没什么要说明的…#1064-你的SQL语法有一个错误;检查与您的MySQL服务器版本相对应的手册,了解在每行开始插入到参与方的成员上使用“BEFORE INSERT on”的正确语法(第1行的PartyId,Part’quote格式是复制/粘贴的结果,我确保按照您的建议做,但仍然是一样的。我更喜欢Oracle,但我知道如果您在MS Word中键入一些sql,然后有人试图复制并粘贴到Oracle中,则会出现此问题。-编辑:直到我添加了min之后才看到您的注释字段e、 ..@enfield:触发器语法没有其他错误。您确定所有空格都是真正的ASCII
\x20
s(即空格)吗而不是一些看起来像空格的Unicode字符?你在用什么编辑你的SQL?@Windle:你在想,有时候一个空格即使看起来像一个空格,也不是一个空格?这是我的下一个猜测。@Windle:我很幸运,我的手指在
vi
中思考,所以对我来说,所有非琐碎的东西都是纯文本,我不必担心它不是所有那些花哨的东西(在源代码中没有位置)。