我比較新使用SQL和MySQL。向部分主鍵添加CONSTRAINT
我有下面的表定義,並且需要添加一個通用的約束,我將在稍後解釋。
CREATE TABLE `ProjInvestigat` (
`projectID` INT,
`principalInvestigator` NUMERIC(8,0) ZEROFILL,
`coInvestigator` NUMERIC(8,0) ZEROFILL,
PRIMARY KEY (projectID, principalInvestigator, coInvestigator)
);
只要coInvesigator不同,我可以在表中有多個projectID和principalInvesigator實例。即
projID principID coInvestID
15 17 27 OKAY
15 17 37 OKAY
15 27 47 NOT OKAY, I need to prevent having two principal investigators on the same project.
我知道要在表定義或ALTER TABLE語句中添加CONSTRAINT,但是我該如何聲明以強制執行此策略?我如何解決這個問題?
感謝您的幫助。
澄清,這裏是這個項目的約束。 – mike
每個項目由一位教授管理,也稱爲項目首席研究員,AND教授可以管理或處理多個項目 – mike
您不需要做任何事情。 'PRIMARY KEY'也是'UNIQUE'約束。僅供參考,MySQL支持的唯一約束條件是'UNIQUE KEY'和'FOREIGN KEY'。它可以讓你寫出其他約束,但忽略它們。 – Barmar