0

这是一个非常基本的问题,所以很抱歉。

我有一个简单的 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 命令不起作用?

4

3 回答 3

7

match是 MySQL 的保留字。

试试这个(使用反引号):

INSERT INTO queries (`query`, `match`) VALUES ('cheese', 4);
于 2013-07-23T20:42:16.733 回答
3

match是 MySQL 中的关键字。你必须逃避它(无论如何这样做是个好主意):

INSERT INTO queries (`query`, `match`) VALUES ('cheese', 4);
于 2013-07-23T20:43:09.163 回答
0

您需要在比赛中使用反引号。match 是 MySQL 中的关键字

 INSERT INTO queries (`query`, `match`) VALUES ('cheese', 4);

参考:http ://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html

于 2013-07-24T11:16:42.480 回答