2017-07-02 5 views
1
mysql> DESC transaction; 
+-------+--------------+------+-----+---------+----------------+ 
| Field | Type   | Null | Key | Default | Extra   | 
+-------+--------------+------+-----+---------+----------------+ 
| id | int(11)  | NO | PRI | NULL | auto_increment | 
| title | varchar(100) | NO |  | NULL |    | 
| from | int(11)  | NO |  | NULL |    | 
| to | int(11)  | NO |  | NULL |    | 
| cost | int(11)  | NO |  | NULL |    | 
+-------+--------------+------+-----+---------+----------------+ 
5 rows in set (0.01 sec) 

mysql> INSERT INTO transaction (title, from, to, cost) VALUES ('Ham', 1, 4, 9000); 
ERROR 1064 (42000): 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 'from, to, cost) VA 
LUES ('Ham', 1, 4, 9000)' at line 1 

Ich habe versucht, Daten in 'Transaktion' Tabelle einzufügen. Ich denke, die Abfrage ist in Ordnung, aber es ist ein Fehler. Was ist mein Problem? Bitte hilf mir!Fehler 1064 (42000): Sie haben einen Fehler in Ihrer SQL-Syntax; Ich kann nicht finden, dass ich falsch gemacht habe

+0

I figured it aus. Ich denke, es war wegen der Verwendung von 'von' in der Abfrage. Ist es richtig? –

Antwort

0

In MySQL sind bestimmte Wörter wie SELECT, INSERT, FROM usw. reservierte Wörter. Da sie eine besondere Bedeutung haben, behandelt MySQL sie als Syntaxfehler, wenn Sie sie als Tabellennamen, Spaltennamen oder andere Arten von Bezeichnern verwenden - es sei denn, Sie umgeben den Bezeichner mit Backticks.

Weitere Einzelheiten finden Sie in https://dev.mysql.com/doc/refman/5.7/en/keywords.html

1
  • Vermeiden Sie reservierte Schlüsselwörter als Spaltennamen verwenden.
  • Wenn Sie sie dennoch verwenden müssen, verwenden Sie doppelte Anführungszeichen, während Sie sie referenzieren. Sie erhalten beim Schreiben einer Select-Anweisung ebenfalls einen Syntaxfehler. Vergessen Sie nicht, sie mit doppelte Anführungszeichen

Gebrauch zu verwenden:

select "from", cost from... 

statt:

select from, cost from... 
1

CHANGE INSERT Tsql TO:

INSERT INTO `transaction` (`title`, `from`, `to`, `cost`) VALUES ('Ham', 1, 4, 9000); 
Verwandte Themen