我的表名为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”和类似的东西),但它不起作用。任何想法可能出错?
答案 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');
这可能有所帮助。