如果重复,请标记,否则我无法找到解决方案。
我正在执行一个非常简单的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');
以及不引用数字(交易id)。
我收到错误:
错误1064(42000):您的sql语法有错误;请查看与mysql服务器版本对应的手册,以了解使用“range,purchase,pid,trade\u id)值('119.43-119.57','119.50',第1行的'pid'的正确语法
我的表结构:
+----------+--------------+------+-----+---------+-------+
| 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)
我也运行在ubuntu14.04上,并从sqlcli(命令行界面)运行这些命令。
如果有人有我明显遗漏的东西,请指路。我要发疯了。
先谢谢你。
4条答案
按热度按时间g6baxovj1#
文档
某些关键字(如select、delete或bigint)是保留的,需要特殊处理才能用作表名和列名等标识符
最简单的解决方案就是避免使用保留字作为标识符。
z9ju0rcb2#
你可以试试这个
wd2eg0qa3#
你试过这个吗
h43kikqp4#
修复了来自的建议查询
deadman
: