SQL有"参考"制作" FOREIGN KEY"自动

时间:2017-11-01 16:16:28

标签: sql sql-server foreign-keys

使用REFERENCE时,我们还需要使用FOREIGN KEY,这两者之间有什么区别。

例如:

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 个答案:

答案 0 :(得分:6)

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关键字是可选的(它们用方括号括起来)。因此,这两个版本做同样的事情。