2012-09-05 4 views

답변

6

모든 RDBMS에서 해당되는 것은 아닙니다. SQL Server (2008/R2)은 고유 키 제약 조건 또는 UNIQUE 인덱스 (즉, 후보 키가 클러스터 인덱스 일 필요조차 없음) 인 null이 아닌 열에 외래 키를 허용합니다. 예 :

CREATE TABLE Parent 
(
    ParentUnique1 INT NOT NULL, 
    ParentUnique2 INT NOT NULL, 
    Name NVARCHAR(50) NOT NULL 
); 
-- Some arbitrary PK 
ALTER TABLE Parent ADD CONSTRAINT PK_Parent PRIMARY KEY(Name); 
-- Unique Key Constraint 
ALTER TABLE Parent ADD CONSTRAINT U_Parent UNIQUE(ParentUnique1); 
-- Unique Index (NonClustered) 
CREATE UNIQUE INDEX IX_Parent ON Parent(ParentUnique2); 

CREATE TABLE Child1 
(
    ChildID INT NOT NULL, 
    ParentID INT NOT NULL, 
    CONSTRAINT FK_Child1Parent FOREIGN KEY(ParentID) REFERENCES Parent(ParentUnique1) 
); 

CREATE TABLE Child2 
(
    ChildID INT NOT NULL, 
    ParentID INT NOT NULL, 
    CONSTRAINT FK_Child2Parent FOREIGN KEY(ParentID) REFERENCES Parent(ParentUnique2) 
); 
+2

그리고 SQL 표준도 마찬가지입니다. –

관련 문제