2014-11-24 45 views
0

我可以知道我是否可以使用create語句聲明屬性主&外鍵?sql create table相同的主鍵和外鍵

像:

CREATE TABLE personal_partner (
    partner_id NOT NULL PRIMARY KEY FOREIGN KEY REFERENCES partner(partner_id) 
) 

而且,我一定要在主鍵添加唯一約束?

謝謝

+0

只是嘗試一下,看看會發生什麼 – Pleun 2014-11-24 10:09:23

回答

0

是的,我們可以。

創建表的合作伙伴(PARTNER_ID INTEGER NOT NULL PRIMARY KEY)

創建表personal_partner (PARTNER_ID INTEGER NOT NULL主鍵的外鍵引用的合作伙伴(PARTNER_ID))

0

- 您可以創建和PK FK on personal_partner(partner_id)
- 對引用的表\列(partner(partner_id))應該有PK或Unique約束。
- 主鍵(PK)由唯一約束+ NOT NULL約束組成,因此您不應該「擔心」需要在表personal_partner中添加其他唯一約束,這是在將列定義爲PK。
- 下面的代碼的工作,應該是你所需要的:

CREATE TABLE partner(
partner_id INT PRIMARY KEY -- or unique constraint, if this may contain NULLs 
) 

CREATE TABLE personal_partner (
partner_id INT NOT NULL PRIMARY KEY, 
CONSTRAINT FKtoPartner FOREIGN KEY (partner_id) REFERENCES partner(partner_id) 
) 
+0

FKtoPartner僅僅是一個例子FK名。命名FKs被認爲是最佳實踐,並且對FK名稱也有一個標準的命名約定。 – 2014-11-24 11:00:02