4

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)
4

3 に答える 3

4

オプションの「CONSTRAINT」と制約名句の使用以外に違いはありません。

制約定義には、インラインとアウト オブ ラインの 2 種類があります。前者は列定義の一部として列を操作するため、DeptID 列に名前を付ける必要はありません。後者はテーブル定義の一部であるため、そうします。

どちらの例も行外の制約ですが、前者の場合は制約に名前を付けていません。これは悪い習慣です。

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

于 2013-05-28T07:12:24.953 に答える
4

2 番目の構文では、制約に名前を付けることができます。最初はそうではありません。

于 2013-05-28T06:57:38.573 に答える