这是一个非常基本的问题,所以道歉。
我有一个简单的SQL(MySQL5)表,我试图命令行插入数据。但它不断出现错误,我不明白为什么。
这是我的控制台输出:
mysql> SHOW COLUMNS from queries;
+-------+-----------+------+-----+-------------------+-----------------------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-----------+------+-----+-------------------+-----------------------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| query | varchar(100) | NO | | NULL | |
| date | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
| match | int(11) | YES | | NULL | |
+-------+-----------+------+-----+-------------------+-----------------------------+
4 rows in set (0.00 sec)
mysql> INSERT INTO queries (query, match) VALUES ('cheese', 4);
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 'match) VALUES ('cheese', 4)' at line 1
mysql>
发生了什么?为什么我的INSERT INTO命令不起作用?
答案 0 :(得分:7)
match
是一个保留的MySQL字。
试试这个(使用反引号):
INSERT INTO queries (`query`, `match`) VALUES ('cheese', 4);
答案 1 :(得分:3)
match
is a keyword in MySQL。你必须逃避它(无论如何这是一个好主意):
INSERT INTO queries (`query`, `match`) VALUES ('cheese', 4);
答案 2 :(得分:0)
你需要在比赛中有后退。 match是MySQL中的关键字
INSERT INTO queries (`query`, `match`) VALUES ('cheese', 4);
参考:http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html