2013-11-25 60 views
0

問題很簡單。REFERENCES語句中的區別

假設下表已創建

CREATE TABLE Customer 
(name varchar(20), 
    address varchar (40), 
    primary key (name)); 

我想知道什麼是寫一個表像這樣

CREATE TABLE Orders 
(name varchar(20), 
    assembly_id numeric (9, 0), 
    primary key (assembly_id), 
    foreign key (name) references Customer); 

之間像這樣

CREATE TABLE Orders 
(name varchar(20), 
    assembly_id numeric (9, 0), 
    primary key (assembly_id), 
    foreign key (name) references Customer(name)); 
+0

沒有區別,但第二個更可能是可讀的,因爲你明確提到了外鍵引用 –

+0

我看到了謝謝。 – Yokhen

回答

0
CREATE TABLE Orders 
(name varchar(20), 
    assembly_id numeric (9, 0), 
    primary key (assembly_id), 
    foreign key (name) references Customer); 
差異

在這裏在缺省情況下,按鍵引用Customer表的主鍵。

但是在這個代碼

CREATE TABLE Orders 
(name varchar(20), 
    assembly_id numeric (9, 0), 
    primary key (assembly_id), 
    foreign key (name) references Customer(name)); 

foreing鍵名稱引用任何特定的替補key..As這裏指定的名稱。

所以兩者都是相同的。但在第一種情況下,由於未指定密鑰,所以它會引用主密鑰。第二種情況下密鑰是明確指定的。

+0

雖然很奇怪,但由於每次我執行第二種情況時,SQL Developer都要求我將該屬性作爲主鍵,因此在我看來,它回到了與第一種情況相同的狀態。 請問您可以給我一個例子,說明這兩種方式如何在SQL Developer中定義完全不同的表格? – Yokhen

相關問題