MySQL 中的 CREATE table 语句出错
Error in CREATE table statement in MySQL
我想在名为 Projects 的数据库中创建一个 table ORDER,它还有另一个 table CUSTOMER。
以下是我使用的语句:
mysql> Create Table ORDER(
-> OrderNo Integer(5) Primary Key,
-> CustNo Integer(7),
-> ItemName Varchar(30),
-> Qty Integer(5),
-> Price Decimal(6,2) Not Null,
-> Foreign Key (CustNo) references CUSTOMER(CustID));
但是我收到了这个错误:
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(
OrderNo Integer(5) Primary Key,
CustNo Integer(7),
ItemName Varchar(30),
' at line 1
这里有什么问题?
如评论所述,ORDER
等在MySQL中保留。完整列表在文档 here.
中
您有三种选择,要么更改 table 名称(我的个人建议),转义名称,要么使用数据库限定名称,例如:CREATE TABLE mydb.ORDER ....
。如果您确实选择坚持使用名为 table(或列)的关键字,那么如果您忘记在另一个查询中转义它,您以后 运行 有混淆的风险。如果这与客户有关,也许它可能是 'CustomerOrder' table.
CREATE TABLE `ORDER`(
OrderNo Integer(5) Primary Key,
CustNo Integer(7),
ItemName Varchar(30),
Qty Integer(5),
Price Decimal(6,2) Not Null,
Foreign Key (CustNo) references CUSTOMER(CustID)
);
鉴于您有一个主键,您可能还希望它自动递增,这样您就不必手动创建键。
CREATE TABLE `ORDER`(
OrderNo Integer(5) Primary Key AUTO_INCREMENT,
CustNo Integer(7),
ItemName Varchar(30),
Qty Integer(5),
Price Decimal(6,2) Not Null,
Foreign Key (CustNo) references CUSTOMER(CustID)
);
我想在名为 Projects 的数据库中创建一个 table ORDER,它还有另一个 table CUSTOMER。
以下是我使用的语句:
mysql> Create Table ORDER(
-> OrderNo Integer(5) Primary Key,
-> CustNo Integer(7),
-> ItemName Varchar(30),
-> Qty Integer(5),
-> Price Decimal(6,2) Not Null,
-> Foreign Key (CustNo) references CUSTOMER(CustID));
但是我收到了这个错误:
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(
OrderNo Integer(5) Primary Key,
CustNo Integer(7),
ItemName Varchar(30),
' at line 1
这里有什么问题?
如评论所述,ORDER
等在MySQL中保留。完整列表在文档 here.
您有三种选择,要么更改 table 名称(我的个人建议),转义名称,要么使用数据库限定名称,例如:CREATE TABLE mydb.ORDER ....
。如果您确实选择坚持使用名为 table(或列)的关键字,那么如果您忘记在另一个查询中转义它,您以后 运行 有混淆的风险。如果这与客户有关,也许它可能是 'CustomerOrder' table.
CREATE TABLE `ORDER`(
OrderNo Integer(5) Primary Key,
CustNo Integer(7),
ItemName Varchar(30),
Qty Integer(5),
Price Decimal(6,2) Not Null,
Foreign Key (CustNo) references CUSTOMER(CustID)
);
鉴于您有一个主键,您可能还希望它自动递增,这样您就不必手动创建键。
CREATE TABLE `ORDER`(
OrderNo Integer(5) Primary Key AUTO_INCREMENT,
CustNo Integer(7),
ItemName Varchar(30),
Qty Integer(5),
Price Decimal(6,2) Not Null,
Foreign Key (CustNo) references CUSTOMER(CustID)
);