我創建了2個表,table123
和items_ordered
。如何將主鍵和外鍵添加到Microsoft SQL Server數據庫中的現有表
table123
具有5列:customerid
,firstname
,surname
,city
和state
items_ordered
具有5列customerid
,order_date
,item
,quantity
和price
。
我想創建table123
在customerid
列和items_ordered
在customerid
列外鍵的主鍵。
這裏是我曾經嘗試創建一個主&外鍵代碼:
ALTER TABLE table123
ADD PRIMARY KEY (customerid);
ALTER TABLE items_ordered
ADD FOREIGN KEY (customerid)
REFERENCES table123 (customerid);
然而,當我執行這些命令,它說
不能定義在空的主鍵約束表'123'中的列
我該如何解決這個問題?表中也沒有任何空值。
P.S.我一直在使用這種替代方法創建一個主鍵和外鍵的嘗試:
SELECT table123.customerid, table123.surname,
items_ordered.order_date, items_ordered.item, items_ordered.price
FROM table123, items_ordered
WHERE table123.customerid = items_ordered.customerid;
上面的代碼給了我一張表,客戶ID鏈接到客戶名稱和產品購買。但是,這是創建主鍵&的正確方法嗎?
好,錯誤說明了這一切 - 你**不能**在可空列上創建一個主鍵 - 所以確保在你的定義中爲'table123',你有' CustomerId INT NOT NULL' - **然後**您可以定義一個主鍵。而你的第二次嘗試是有缺陷的,因爲它應該使用**正確的ANSI/ISO JOIN語法**(而不是在'FROM'子句中以逗號分隔的方式列出表),並且它不會**創建主要和/或外鍵 - 它只是加入一個共同的列上的兩個表 –
好吧,它會是一個內部加入?此外,當您創建主鍵和外鍵時,它是否不會創建單獨的表? – CrashBandicoot