Warum macht MySQL verweigern pipe ('|') Zeichen im string auf INSERT INTO
Wenn ich versuche diese Aussage:
INSERT INTO TerminalEventChild (id,stringValue) VALUES
(64,'version123|');
MySQL-Fehler mit :
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
Wenn ich entfernen Sie die Zeichen|, funktioniert alles einwandfrei. Irgendeine Idee?
- Haben Sie versucht, die Flucht der | die mit einem backslash?
- Ja, und ich habe die gleiche Sache. Ich habe auch versucht, Doppel-Rohr, aber mit dem gleichen Ergebnis.
- Dies gilt für Squirrel SQL Client. Siehe die Antwort weiter unten: stackoverflow.com/a/7444934/1188357
Du musst angemeldet sein, um einen Kommentar abzugeben.
Auf meinem Rechner, das funktioniert bestens:
Wohl, Ihr Kunde behandelt, mit dem pipe-Zeichen speziell.
Welchem client benutzt du?
Fand ich die Lösung auf Falsche query-parsing - ID: 3091322.
Squirrel SQL ist durch das pipe-symbol als eine Prozedur/Funktion mit Trennzeichen, so müssen Sie ändern Sie die MySQL-Einstellungen zu verwenden, etwas anderes (z.B. |||).
In der "Datei - > Globale Einstellungen > MySQL" - Reiter in der "Prozedur/Funktion Separator" - Feld,
ersetzen | mit einer anderen Zeichenkette, z.B. |||.