为什么MySQL拒绝INSERT INTO中字符串中的管道('|')字符

时间:2010-03-24 19:01:05

标签: sql mysql

如果我试试这句话:

INSERT INTO TerminalEventChild (id,stringValue) VALUES 
(64,'version123|');

MySQL失败了:

Error: 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 ''version123' at line 1
SQLState:  42000
ErrorCode: 1064

如果我删除了|一切都很好。有什么想法吗?

2 个答案:

答案 0 :(得分:17)

我在Incorrect query parsing - ID: 3091322找到了解决方案 Squirrel SQL使用管道符号作为过程/函数分隔符,因此您需要更改MySQL首选项以使用其他内容(例如 ||| )。

在“文件>全局首选项> MySQL”标签中的“过程/功能分隔符”字段中, 将 | 替换为其他字符串,例如 |||

答案 1 :(得分:3)

在我的机器上,这很好用:

CREATE TABLE TerminalEventChild (id INT, stringValue VARCHAR(200));

INSERT INTO TerminalEventChild (id,stringValue) VALUES
(64,'version123|');

您的客户可能会特别对待管道角色。

您使用的是哪个客户?