mysql建表: 出现 error 1604(42000)的错误,建表的源代码如正文(是在数据库“test”中建立这个表的)

时间:2022-11-23 08:20:50
mysql> use test;
Database changed
mysql> CREATE TABLE Order
    -> (
    ->  number INTEGER,
    ->  shippingAddress varchar(100),
    ->  shippingDate varchar(100),
    ->  orderID Integer NOT NULL,
    ->  orderLineItemID Integer,
    ->  PRIMARY KEY (orderID)
    -> )
    -> ;
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

(
        number INTEGER,
        shippingAddress varchar(100),
        shippingDate varchar(10' at line 1
mysql>




不知道为什么?有人帮我解答下吗??

4 个解决方案

#1




order 是保留字,需要用反引号标识 `

mysql> CREATE TABLE `Order`
    -> (
    ->  number INTEGER,
    ->  shippingAddress varchar(100),
    ->  shippingDate varchar(100),
    ->  orderID Integer NOT NULL,
    ->  orderLineItemID Integer,
    ->  PRIMARY KEY (orderID)
    -> );
Query OK, 0 rows affected (0.14 sec)

mysql>


#2


mysql> CREATE TABLE Order 
    -> ( 
    ->  `number` INTEGER, 
    ->  shippingAddress varchar(100), 
    ->  shippingDate varchar(100), 
    ->  `orderID` Integer NOT NULL, 
    ->  orderLineItemID Integer, 
    ->  PRIMARY KEY (`orderID`) 
    -> ) 
    -> ;

#3


我用1楼的代码就解决了。

但是为什么 当表的名字是 Order 时建表就不行?? 而表的其他代码不变,我把表名字改了,就可以了。

还有:那个“`”是什么用处的?为什么Order加上这个就可以成功建表了???

#4




一楼说得很清楚了。

order 是保留字,需要用反引号标识 `

#1




order 是保留字,需要用反引号标识 `

mysql> CREATE TABLE `Order`
    -> (
    ->  number INTEGER,
    ->  shippingAddress varchar(100),
    ->  shippingDate varchar(100),
    ->  orderID Integer NOT NULL,
    ->  orderLineItemID Integer,
    ->  PRIMARY KEY (orderID)
    -> );
Query OK, 0 rows affected (0.14 sec)

mysql>


#2


mysql> CREATE TABLE Order 
    -> ( 
    ->  `number` INTEGER, 
    ->  shippingAddress varchar(100), 
    ->  shippingDate varchar(100), 
    ->  `orderID` Integer NOT NULL, 
    ->  orderLineItemID Integer, 
    ->  PRIMARY KEY (`orderID`) 
    -> ) 
    -> ;

#3


我用1楼的代码就解决了。

但是为什么 当表的名字是 Order 时建表就不行?? 而表的其他代码不变,我把表名字改了,就可以了。

还有:那个“`”是什么用处的?为什么Order加上这个就可以成功建表了???

#4




一楼说得很清楚了。

order 是保留字,需要用反引号标识 `