此问题在此处已有答案:
Syntax error due to using a reserved word as a table or column name in MySQL(1个答案)
2天前关闭。
- 我是sql的新手,正在YouTube上学习netwrokchunk的教程。
- 如果创建具有第一字段顺序的表,则会弹出错误
- 如果使用第一个字段顺序创建同一个表,则不会显示任何错误。
mysql> show tables
-> ;
+---------------------+
| Tables_in_nc_coffee |
+---------------------+
| coffee_table |
| orders_table |
+---------------------+
2 rows in set (0.00 sec)
mysql> drop table orders_table;
Query OK, 0 rows affected (0.03 sec)
mysql> show tables
-> ;
+---------------------+
| Tables_in_nc_coffee |
+---------------------+
| coffee_table |
+---------------------+
1 row in set (0.00 sec)
mysql> create table orders_table (
-> order int,
-> coffee int,
-> customer int
-> );
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 'order int,
coffee int,
customer int
)' at line 2
mysql> create table orders_table ( order int, coffee int, customer int );
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 'order int, coffee int, customer int )' at line 1
mysql> create table orders_table ( orders int, coffee int, customer int );
Query OK, 0 rows affected (0.03 sec)
mysql>
这是怎么回事?
2条答案
按热度按时间ubof19bj1#
ORDER
是保留字(SQLORDER BY
子句的一部分)。使用保留字作为列名或表名通常是个坏主意,但如果你真的想这样做,MySQL会让你用反引号把它括起来:
jmp7cifd2#
避免使用保留关键字作为列名。您可以使用其他名称,如“orders”,而不是“order”作为表列的名称。