2010-03-24 10 views
7

Wenn ich diese Aussage versuchen:Warum MySQL verweigert Rohr ('|') Zeichen in Zeichenfolge auf INSERT INTO

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

MySQL nicht 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 das entfernen | Charakter, alles funktioniert gut. Irgendeine Idee?

+0

Haben Sie versucht, die Flucht | mit einem Backslash? – erenon

+0

Ja, und ich habe das Gleiche. Ich habe auch versucht, das Rohr zu verdoppeln, aber mit dem gleichen Ergebnis. –

+0

Dies gilt für ** SQL Squirrel Client **. Siehe die Antwort unten: http://StackOverflow.com/a/7444934/1188357 – Kiril

Antwort

3

Auf meinem Rechner funktioniert das gut:

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

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

Wahrscheinlich Ihr Kunde behandelt speziell die Pipe-Zeichen.

Welchen Client verwenden Sie?

+0

Also, was war das Problem? – nos

+0

Richtig, ich habe gerade mit der mysql-Kommandozeile versucht und es hat gut funktioniert. Ich benutze SQuirreLSQL. Ich werde mit ihnen nachsehen. Danke! –

+0

kann ich auch bestätigen das funktioniert. Ich habe es mit dem mysql cli (5.1.42) auf einer Linux-Box versucht. –

17

Ich fand die Lösung auf Incorrect query parsing - ID: 3091322.
Squirrel SQL verwendet das Pipe-Symbol als Prozedur-/Funktionstrennzeichen, daher müssen Sie die MySQL-Voreinstellungen ändern, um etwas anderes zu verwenden (z. B. |||).

In der Registerkarte "Datei> Globale Einstellungen> MySQL" im Feld "Prozedur/Funktionstrenner" ersetzen | mit einer anderen Zeichenfolge, zum Beispiel |||.

+0

Arbeitete in meinem Fall, Eichhörnchen Rohr Handhabung war der Schuldige. – olefebvre

+0

Ich hatte genau das gleiche Problem danke @ Anne-Marie –

+0

Ich benutze Eichhörnchen und das war mein Problem auch. Ich wusste nicht, dass Squirrel die Pfeife für andere Sachen benutzt hat. –