4

I am Using Oracle 10g. I am Adding new column deptId to my UserList Table where I use deptId column as Foreign key which references other table Column Departments.DepartmentId

Is there Difference between adding foreign key as constraint and First Query

Query1

ALTER TABLE UserList
ADD FOREIGN KEY (DeptId)
REFERENCES Departments(DepartmentId)    

Query2

ALTER TABLE UserList
ADD CONSTRAINT  fk_DeptId FOREIGN KEY (DeptId)
REFERENCES Departments(DepartmentId)
4

3 回答 3

4

除了使用可选的“CONSTRAINT”和约束名称子句外,没有什么区别。

有两种约束定义:内联和外联。前者作为列定义的一部分对列进行操作,因此不需要命名 DeptID 列。后者是表定义的一部分,因此确实如此。

您的两个示例都超出了约束,但您没有在前一种情况下命名约束,这是一种不好的做法:

http://docs.oracle.com/cd/E18283_01/server.112/e17118/clauses002.htm#g1053592

于 2013-05-28T07:12:24.953 回答
4

第二种语法允许您命名您的约束。第一个没有。

于 2013-05-28T06:57:38.573 回答
-2
ALTER TABLE [dbo].[UserList] WITH NOCHECK ADD CONSTRAINT [fk_DeptId] FOREIGN KEY([DeptId])
参考 [dbo].[Departments] ([DepartmentId])

不,您的两个查询都没有区别。但是您要命名外键约束名称。您可以使用上面的查询。

于 2013-05-28T07:50:44.757 回答