mysql - 无法使用名为 'order' 的表执行插入查询?

标签 mysql

<分区>

数据库名称:test 表名:order, order_shipping,order_payment

下面的查询给我错误

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

error : 1064 - 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(order_status,customer_id) values('booked',1)' at line 1

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

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

result : insertion successfull

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

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

insertion successfull

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

我的数据库中的表:order, order_shipping,order_payment

最佳答案

orderreserved keyword within MySQL .如果您想将其用作标识符,请将其括在反引号中:

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

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

关于mysql - 无法使用名为 'order' 的表执行插入查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17927976/

相关文章:

mysql - 如何按值获取分组列数

sql - MySQL:子查询中的总和值

MySQL 计数如果使用 4 个表或 Perl

java - 在 hibernate 状态下可连接多对多

mySQL存储过程where子句问题

sql - TEXT 字段的实际大小 (MySQL)

mysql - ubuntu mysqldb 没有正确安装

mysql - 使用随机值作为主键时的 InnoDB 聚集索引性能

mysql - 从现有 MySQL 数据库生成 ER 图,为 CakePHP 创建

php - 在不同的表格中显示所有服务名称及其下面的图片