Mysql SQL初学者创建表时出错

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

因此,我是sql新手,我试图为sql创建一系列表,但似乎无法让它正常工作。我得到的错误消息是。 这些表都是单独添加的,没有问题,但是当我想一次导入所有表时,会出现这个错误

架构创建失败:SQL语法中有错误;请查看与MySQL服务器版本对应的手册,以了解在“[Customer]附近使用的正确语法( CustomerID int主键, 第1行的CustomerName varchar('

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完整脚本。只需检查它