错误1064(42000) - 在SQL查询中找不到错误

时间:2017-11-09 11:06:49

标签: mysql sql

我的表名为networks

mysql> describe networks;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| range | varchar(45) | NO   |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+

我正在尝试使用以下查询在此表中INSERT值:

INSERT INTO networks(range) VALUES("10.10.10.10/24");

但是我收到了这个错误:

  

错误1064(42000):您的SQL语法出错;查看与您的MySQL服务器版本对应的手册,以便在第1行的“范围”VALUES(“10.10.10.10/24”)附近使用正确的语法

我尝试过使用引号(将它们改为“to”和类似的东西),但它不起作用。任何想法可能出错?

2 个答案:

答案 0 :(得分:4)

您可以使用以下INSERT

INSERT INTO `networks` (`range`) VALUES ('10.10.10.10/24');

您可以将表名和列名括在反引号中,以避免与MySQL上的保留字冲突。在您的情况下,RANGE是保留字,不能在没有反引号的情况下用作列名或表名。字符串值应该用单引号括起来。

  

注意:您应该避免使用RANGE之类的保留字作为列和表定义。您可以在official docs上找到所有保留字的列表。

答案 1 :(得分:3)

尝试返回Ticks:

INSERT INTO networks(`range`) VALUES('10.10.10.10/23');

这可能有所帮助。