2015-09-27 69 views
0

我只是剛剛開始在SQL的土地,並試圖找出我做錯了我的一個表。我有跟隨不知道我的SQL有什麼問題嗎?

CREATE TABLE Winemaker ( 
Winemaker_id varchar (20) NOT NULL, 
Winemaker_name varchar (20) NOT NULL, 
key (Winemaker_Id)); 

CREATE TABLE Wine ( 
Wine_Id varchar (20) NOT NULL, 
Wine_name varchar (20) NOT NULL, 
Winemaker_Id varchar (4) NOT NULL, 
Wine_vintage varchar (8) NOT NULL, 
Wine_price varchar (8) NOT NULL 
Primary key (Wine_Id) 
Foreign key (Winemaker_Id) REFERENCES Winemaker(Id)); 

我不太清楚我做錯了什麼。如果任何人都可以提供幫助,那很好,謝謝!

+2

在'REFERENCES'之前的額外分號(;)。 – Beginner

+0

您是否收到錯誤?什麼錯誤?有幾個語法錯誤,但他們應該防止創建表。 –

+0

我得到錯誤代碼'在第8行缺少右括號'。 – Maddeh

回答

1

你有幾個問題,主要圍繞外鍵引用的定義。試試這個:

CREATE TABLE Winemaker ( 
    Winemaker_id varchar(20) NOT NULL, 
    Winemaker_name varchar(20) NOT NULL, 
    primary key (Winemaker_Id) 
); 

CREATE TABLE Wine ( 
    Wine_Id varchar(20) NOT NULL, 
    Wine_name varchar(20) NOT NULL, 
    Winemaker_Id varchar(20) NOT NULL, 
    Wine_vintage varchar(8) NOT NULL, 
    Wine_price varchar (8) NOT NULL, 
    Primary key (Wine_Id), 
    Foreign key (Winemaker_Id) REFERENCES Winemaker(Winemaker_id) 
); 

SQL小提琴是here

注:

  • 您需要定義Winemaker主鍵(或至少唯一鍵)有外鍵引用。
  • 引用表中列的數據類型需要與引用表中的數據類型完全匹配。
  • 您錯過了逗號。
  • 你有額外的關閉parens和分號。
  • 此外,varchar(之間的空格是允許的,但它們看起來很尷尬。
+0

非常感謝你的工作!下次我也會記住這些指針。 – Maddeh

相關問題