2014-04-26 96 views
0

因此,即時通訊新的SQL和即時通訊嘗試創建一系列的表不能正常工作。我得到的錯誤信息是。 這些表格都單獨添加沒有問題,但是當我想要一次導入它們時,它會給我這個錯誤。創建表的SQL初學者錯誤

模式創建失敗:您的SQL語法有錯誤;檢查對應於你的MySQL服務器版本使用附近的正確語法手冊「[客戶]( 客戶ID INT PRIMARY KEY, 客戶名稱VARCHAR(」在第1行:

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; 
+0

'訂單'是一個保留字。以複數名稱命名錶是個好主意。 。 。 '訂單','供應商','客戶'等等。 –

+0

您在'Product'的'CREATE TABLE'中缺少一個逗號,在'UnitPrice'列聲明之後# – abl

+0

這是mysql,對不對?那麼方括號是什麼? – Strawberry

回答

2

order是MySQL中的reserved word 。無論是使用反引號逃逸,或使用其他名稱

CREATE TABLE IF NOT EXISTS `Order` (... 
-1

我Order表重命名爲OrderMaster爲「訂單」是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; 
+0

'order1'?你一定在開玩笑吧! –

+0

他應該使用其他字,然後命令說例子order1 ..沒有開玩笑.. –

+0

另一個名字是一個好主意。例如'訂單'。但是'order1'對於一張桌子來說是個可怕的名字。 –