Mysql SQL初学者创建表时出错
因此,我是sql新手,我试图为sql创建一系列表,但似乎无法让它正常工作。我得到的错误消息是。 这些表都是单独添加的,没有问题,但是当我想一次导入所有表时,会出现这个错误 架构创建失败:SQL语法中有错误;请查看与MySQL服务器版本对应的手册,以了解在“[Customer]附近使用的正确语法( CustomerID int主键, 第1行的CustomerName varchar('Mysql SQL初学者创建表时出错,mysql,sql,database,Mysql,Sql,Database,因此,我是sql新手,我试图为sql创建一系列表,但似乎无法让它正常工作。我得到的错误消息是。 这些表都是单独添加的,没有问题,但是当我想一次导入所有表时,会出现这个错误 架构创建失败:SQL语法中有错误;请查看与MySQL服务器版本对应的手册,以了解在“[Customer]附近使用的正确语法( CustomerID int主键, 第1行的CustomerName varchar(' CREATE TABLE IF NOT EXISTS [Customer]( CustomerID
CREATE TABLE IF NOT EXISTS [Customer](
CustomerID int PRIMARY KEY,
CustomerName varchar(50) NOT NULL,
BillingAddress varchar(400) default NULL,
PhoneNumber int default NULL,
User_Email varchar(128) UNIQUE
)ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS [Order](
OrderID int NOT NULL PRIMARY KEY,
CustomerID int,
OrderDate date NOT NULL,
PurchaseOrderNumber int
)ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS [OrderItem](
OrderItemID int PRIMARY KEY,
ProductID int NOT NULL,
OrderID int NOT NULL,
Quantity int NOT NULL,
PricePerUnit double NOT NULL
)ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS [Product](
ProductID int PRIMARY KEY,
ProductName varchar(100) NOT NULL,
ProductDescription varchar(100) NOT NULL,
SerialNumber int NOT NULL,
UnitesInStock int NOT NULL,
UnitsOnOrder int NOT NULL,
UnitPrice double NOT NULL
SupplierID int not NULL
)ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS [SupplySchedule](
ShippingID int PRIMARY KEY,
ShippingMode varchar(50) NOT NULL
)ENGINE=InnoDB DEFAULT CHARSET=latin1;
CREATE TABLE IF NOT EXISTS [Supplier](
SupplierID int PRIMARY KEY,
SupplierName varchar(40) NOT NULL,
SupplierAddress varchar(128) NOT NULL,
ContactName varchar(128) NOT NULL
)ENGINE=InnoDB DEFAULT CHARSET=latin1;
order
是MySQL中的一个名称。可以使用backticks来转义它,也可以使用其他名称
CREATE TABLE IF NOT EXISTS `Order` (...
我已经将订单表重命名为OrderMaster,因为“Order”是mysql保留字 请尝试以下脚本:
drop table if exists Customer;
CREATE TABLE Customer(
CustomerID int PRIMARY KEY,
CustomerName varchar(50) NOT NULL,
BillingAddress varchar(400) default NULL,
PhoneNumber int default NULL,
User_Email varchar(128) UNIQUE
)ENGINE=InnoDB DEFAULT CHARSET=latin1;
drop table if exists OrderMaster;
CREATE TABLE IF NOT EXISTS OrderMaster(
OrderID int NOT NULL PRIMARY KEY,
CustomerID int,
OrderDate date NOT NULL,
PurchaseOrderNumber int
)ENGINE=InnoDB DEFAULT CHARSET=latin1;
drop table if exists OrderItem;
CREATE TABLE OrderItem(
OrderItemID int PRIMARY KEY,
ProductID int NOT NULL,
OrderID int NOT NULL,
Quantity int NOT NULL,
PricePerUnit double NOT NULL
)ENGINE=InnoDB DEFAULT CHARSET=latin1;
drop table if exists Product;
CREATE TABLE IF NOT EXISTS Product(
ProductID int PRIMARY KEY,
ProductName varchar(100) NOT NULL,
ProductDescription varchar(100) NOT NULL,
SerialNumber int NOT NULL,
UnitesInStock int NOT NULL,
UnitsOnOrder int NOT NULL,
UnitPrice double NOT NULL,
SupplierID int not NULL
)ENGINE=InnoDB DEFAULT CHARSET=latin1;
drop table if exists SupplySchedule;
CREATE TABLE IF NOT EXISTS SupplySchedule(
ShippingID int PRIMARY KEY,
ShippingMode varchar(50) NOT NULL
)ENGINE=InnoDB DEFAULT CHARSET=latin1;
drop table if exists Supplier;
CREATE TABLE IF NOT EXISTS Supplier(
SupplierID int PRIMARY KEY,
SupplierName varchar(40) NOT NULL,
SupplierAddress varchar(128) NOT NULL,
ContactName varchar(128) NOT NULL
)ENGINE=InnoDB DEFAULT CHARSET=latin1;
订单
是一个保留字。最好以复数形式命名表格…订单
,供应商
,客户
,等等。您的为表产品
创建表
中缺少一个逗号,就在单价
列声明之后,这是mysql,对吗?那么at是?@GordonLinoff…值的方括号;-)order1
?你一定是在开玩笑!另一个名字是个好主意。例如orders
。但是order1
对于一个表来说是一个可怕的名字。所以我编辑了上面的代码,当我试图同时添加所有表时仍然会出错。它们单独工作很好吗?@user2319199我已经更新了我的答案并写下了n完整脚本。只需检查它