MYSQL INSERT INTO;无效的语法

时间:2018-06-11 04:29:44

标签: mysql mysql-error-1064

如果重复,请标记为我无法找到解决方案。

我正在执行一个非常简单的SQL命令,我在其他环境中执行了很多次,但找不到这种语法错误的押韵或原因。

INSERT INTO tracking (range,purchase,trade_id) VALUES ("119.43-119.57","119.50","pid","961971");

我也试过这个:

INSERT INTO tracking (range,pid,purchase,trade_id) VALUES ('119.43-119.57','119.50','pid','961971');

除了不引用数字(trade_id)。

我收到错误:

  

错误1064(42000):您的SQL语法有错误;检查   手册,对应右边的MySQL服务器版本   在'range,purchase,pid,trade_id)附近使用的语法   价值('119.43-119.57','119.50','pid'在第1行

我的表结构:

+----------+--------------+------+-----+---------+-------+
| Field    | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| trade_id | varchar(125) | NO   | PRI | NULL    |       |
| pid      | varchar(125) | NO   |     | NULL    |       |
| purchase | varchar(125) | NO   |     | NULL    |       |
| range    | varchar(125) | NO   |     | NULL    |       |
| sell     | varchar(5)   | YES  |     | NULL    |       |
+----------+--------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

然后我的SQL版本:

+-------------------------+
| VERSION()               |
+-------------------------+
| 5.5.60-0ubuntu0.14.04.1 |
+-------------------------+
1 row in set (0.00 sec)

我也在Ubuntu 14.04上运行并从SQL CLI(命令行界面)运行这些命令。

如果有人指出我明显失踪的东西,请指出方向。我要去打屁股了。

提前谢谢。

4 个答案:

答案 0 :(得分:1)

Documentation

  

某些关键字,例如SELECT,DELETE或BIGINT,是保留的   需要特殊处理才能用作表格和表格等标识符   列名

最简单的解决方案就是避免使用保留字作为标识符。

答案 1 :(得分:1)

你可以试试这个

INSERT INTO tracking (`range`,`pid`,`purchase`,`trade_id`) VALUES (`119.43-119.57`,`119.50`,`pid`,`961971`);

答案 2 :(得分:1)

你试过吗

INSERT INTO 'tracking' (range,pid,purchase,trade_id) VALUES ('119.43-119.57','119.50','pid','961971');

答案 3 :(得分:-1)

通过deadman的建议修正了查询:

INSERT INTO `tracking` (`range`, `purchase`, `pid`, `trade_id`) VALUES ("119.43-119.57", "119.50", "pid", "961971");