2015-11-23 61 views
-1

我正在嘗試創建3個表格,但無法創建表格Award。在括號內(Child,Present),我收到一個錯誤。我該怎麼辦?表Present和表Child被創建,但不是表Award。我無法創建表Award,爲什麼?如何創建一個唯一的約束表?

create table Child 
(
    ID integer primary key, 
    name varchar(20) unique not null, 
    age integer, 
    kind bit 
); 

create table Presents 
(
    ID integer primary key, 
    name varchar(20) unique, 
    weight float 
); 

create table Award 
(
    ID integer primary key, 
    childID integer references Barn(ID), 
    presentID integer references Presenter(ID), 
    unique(Child, Present), 
    antal int 
); 
+0

你需要調用它們'childID'和'presentID',因爲這些是表中的實際列名稱。 –

+0

此外,這不是向表中添加唯一約束的正確方法。請閱讀MSDN中的CREATE TABLE文檔。 –

+0

因爲孩子和禮物不是你的表中的列。我會建議不要使用ID作爲列名。它真的應該是每個表中的ChildID和PresentsID。我也不會儲存年齡。你應該存儲生日和計算它。此外,重量可能應該是一個數字而不是浮動。我甚至無法理解什麼是一個名爲「kind」的專欄。 –

回答

3

孩子和禮物不在獎列。我相信你想unique(childID, presentID)

+0

感謝它的工作! – LearningByDoing