0

数据库名称:测试表名称:order、order_shipping、order_payment

下面的查询给了我错误

INSERT INTO order(order_status,customer_id) values('booked',1) 

错误:1064 - 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'order(order_status,customer_id) values('booked',1)' 附近使用正确的语法

但是如果我在表名之前添加数据库名称,完全相同的查询将起作用

INSERT INTO test.order(order_status,customer_id) values('booked',1) 

结果:插入成功

我将表名“order”重命名为“order_main”,它可以在没有数据库名称的情况下工作

INSERT INTO order_main(order_status,customer_id) values('booked',1) 

插入成功

我的问题是为什么如果没有将数据库名称附加到表名,我的原始查询就不能工作。是不是因为我还有其他以这个表名开头的表???

我的数据库中的表:订单、订单发货、订单付款

4

1 回答 1

4

orderMySQL 中的保留关键字。如果要将其用作标识符,请将其括在反引号中:

INSERT INTO `order` (order_status,customer_id) values('booked',1) 

在第二个查询中,您指定了一个完整的标识符,MySQL 不会将其误认为是关键字。因此,它可以毫无问题地工作。

于 2013-07-29T15:28:17.803 回答