2017-11-01 6 views
1

REFERENCE을 사용하는 경우 FOREIGN KEY을 사용해야하며 그 차이점은 무엇입니까?SQL "REFERENCE"가 "외부 키"를 자동으로 만듭니다.

CREATE TABLE Orders (
    OrderID int NOT NULL PRIMARY KEY, 
    OrderNumber int NOT NULL, 
    PersonID int FOREIGN KEY REFERENCES Persons(PersonID) 
); 

대 : 예를 들어

CREATE TABLE Orders (
    OrderID int NOT NULL PRIMARY KEY, 
    OrderNumber int NOT NULL, 
    PersonID int REFERENCES Persons(PersonID) 
); 
이 키워드 "FOREIGN KEY"를 포함하지 않고 작동하는 것 같다

, 그래서에서 궁금

w 정말 기본적인 질문이지만 답을 찾을 수 없었습니다.

+1

주제에 대한 좋은 토론이 있습니다. [외래 키와 참조 키의 차이점] (https://stackoverflow.com/questions/8595695/what-is-difference-between-foreign-key-and) -reference-key) –

답변

5

syntax diagram은 매우 분명하다 : 인라인 외래 키 정의는

column_name AS computed_column_expression 
[ PERSISTED [ NOT NULL ] ] 
[ 
    [ CONSTRAINT constraint_name ] 
    . . . 
    | [ FOREIGN KEY ] 
     REFERENCES referenced_table_name [ (ref_column) ] 
     [ ON DELETE { NO ACTION | CASCADE } ] 
     [ ON UPDATE { NO ACTION } ] 
     [ NOT FOR REPLICATION ] 

    | CHECK [ NOT FOR REPLICATION ] (logical_expression) 
] 

FOREIGN KEYCONSTRAINT 키워드는 (그들은 대괄호로 묶) 선택 사항입니다. 따라서 두 버전은 동일한 기능을 수행합니다.