外來鍵是乙個(或數個)指向另外乙個**主鍵的字段。外來鍵的目的是確定資料的參考完整性(referential integrity)。換言之,只有被准許的資料值才會被存入資料庫內。
舉例來說,假設我們有兩個**:乙個 customer **,裡面記錄了所有顧客的資料;另乙個 orders **,裡面記錄了所有顧客訂購的資料。在這裡的乙個限制,就是所有的訂購資料中的顧客,都一定是要跟在 customer **中存在。在這裡,我們就會在 orders **中設定乙個外來鍵,而這個外來鍵是指向 customer **中的主鍵。這樣一來,我們就可以確定所有在 orders **中的顧客都存在 customer **中。換句話說,orders**之中,不能有任何顧客是不存在於 customer **中的資料。
這兩個**的結構將會是如下:
customer **
欄位名性質sid
主鍵last_name
first_name
orders **
欄位名性質order_id
主鍵order_date
customer_sid
外來鍵amount
在以上的例子中,orders **中的 customer_sid 欄位是乙個指向 customers **中 sid 欄位的外來鍵。
以下列出幾個在建置 orders **時指定外來鍵的方式:
mysql:
create table orders
(order_id integer,
order_date date,
customer_sid integer,
amount double,
primary key (order_id),
foreign key (customer_sid) references customer(sid));
oracle:
create table orders
(order_id integer primary key,
order_date date,
customer_sid integer references customer(sid),
amount double);
sql server:
create table orders
(order_id integer primary key,
order_date datetime,
customer_sid integer references customer(sid),
amount double);
以下的例子則是藉著改變**架構來指定外來鍵。這裡假設 orders **已經被建置,而外鍵尚未被指定:
mysql:
alter table orders
add foreign key (customer_sid) references customer(sid);
oracle:
alter table orders
add (constraint fk_orders1) foreign key (customer_sid) references customer(sid);
sql server:
alter table orders
add foreign key (customer_sid) references customer(sid);
資料庫 外來鍵
外來鍵是什麼?外來鍵 fk 是用於建立和加強兩個表資料之間的鏈結的一列或多列。通過將儲存表中主鍵值的一列或多列新增到另乙個表中,可建立兩個表之間的鏈結。這個列就成為第二個表的外來鍵。外來鍵資料庫一級的完整性約束,由資料庫自行維護.你也可以手動建立.1如果存在外來鍵關係的話,任何修改主表主鍵欄位和刪除...
資料庫外來鍵
主鍵 能夠唯一標識表中某一行的屬性或屬性組。乙個表只能有乙個主鍵,但是可以有多個索引。主鍵常常與外來鍵構成完整性約束,防止出現資料的不一致,資料庫管理系統對於主鍵自動生成唯一索引,所以主鍵是乙個特殊的索引。外來鍵 用於建立和加強兩個表資料之間的連線的一列或者多列。外來鍵主要是用來維護兩個表之間的資料...
資料庫外來鍵
概念 table2的乙個鍵關聯table1的主鍵 foreign key 作用 保持資料的一致性和完整性 表的字段必須與外來鍵型別相同 insert table2的時候會檢查foreign key是否在table1中存在,不存在則返回失敗 delete table1某行資料的時候檢查table2中是...