[英]What is the Difference between adding Column as Foreign Key and as a Constraint
我正在使用Oracle 10g。 我正在將新列deptId添加到我的UserList表中,在這里我將deptId列用作引用其他表列Departments.DepartmentId的外鍵
將外鍵添加為約束和首次查詢之間是否有區別
查詢1
ALTER TABLE UserList
ADD FOREIGN KEY (DeptId)
REFERENCES Departments(DepartmentId)
查詢2
ALTER TABLE UserList
ADD CONSTRAINT fk_DeptId FOREIGN KEY (DeptId)
REFERENCES Departments(DepartmentId)
第二種語法允許您命名約束。 第一個沒有。
除了使用可選的“ CONSTRAINT”和約束名稱子句外,沒有任何區別。
有兩種約束定義:內聯和外聯。 前者在列上作為列定義的一部分進行操作,因此不需要命名DeptID列。 后者是表定義的一部分,因此也可以。
您的兩個示例都不符合約束條件,但是在前一種情況下,您沒有命名約束條件,這是一個不好的做法:
http://docs.oracle.com/cd/E18283_01/server.112/e17118/clauses002.htm#g1053592
ALTER TABLE [dbo].[UserList] WITH NOCHECK ADD CONSTRAINT [fk_DeptId] FOREIGN KEY([DeptId]) REFERENCES [dbo].[Departments] ([DepartmentId])
不,這兩個查詢都沒有區別,但是您要命名外鍵約束名稱。 您可以使用上面的查詢。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.