我可以知道我是否可以使用create語句聲明屬性主&外鍵?sql create table相同的主鍵和外鍵
像:
CREATE TABLE personal_partner (
partner_id NOT NULL PRIMARY KEY FOREIGN KEY REFERENCES partner(partner_id)
)
而且,我一定要在主鍵添加唯一約束?
謝謝
我可以知道我是否可以使用create語句聲明屬性主&外鍵?sql create table相同的主鍵和外鍵
像:
CREATE TABLE personal_partner (
partner_id NOT NULL PRIMARY KEY FOREIGN KEY REFERENCES partner(partner_id)
)
而且,我一定要在主鍵添加唯一約束?
謝謝
是的,我們可以。
創建表的合作伙伴(PARTNER_ID INTEGER NOT NULL PRIMARY KEY)
創建表personal_partner (PARTNER_ID INTEGER NOT NULL主鍵的外鍵引用的合作伙伴(PARTNER_ID))
- 您可以創建和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)
)
FKtoPartner僅僅是一個例子FK名。命名FKs被認爲是最佳實踐,並且對FK名稱也有一個標準的命名約定。 – 2014-11-24 11:00:02
只是嘗試一下,看看會發生什麼 – Pleun 2014-11-24 10:09:23