外來鍵
是個(或數個)指向另外乙個**主鍵的字段。外來鍵的目的是確定資料的參考完整性(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));
為表新加外來鍵。這裡假設 orders **已被建置,而外鍵尚未被指定:
mysql:
alter table orders add foreign key (customer_sid) references customer(sid);
mysql 外來鍵說明 Mysql外來鍵詳細說明
在mysql中,innodb引擎型別的表支援了外來鍵約束。constraint symbol foreign key id index col name,references tbl name index col name,on delete on update alter table serial...
mysql外來鍵作用
一 如果一張表中有乙個非主鍵的字段指向了別一張表中的主鍵,就將該字段叫做外來鍵。一張表中可以有多個外來鍵。外來鍵的預設作用有兩點 1.對子表 外來鍵所在的表 的作用 子表在進行寫操作的時候,如果外來鍵字段在父表中找不到對應的匹配,操作就會失敗。2.對父表的作用 對父表的主鍵字段進行刪和改時,如果對應...
mysql 外來鍵說明 MySQL外來鍵使用及說明詳解
一 外來鍵約束 mysql通過外來鍵約束來保證表與表之間的資料的完整性和準確性。外來鍵的使用條件 1.兩個表必須是innodb表,myisam表暫時不支援外來鍵 據說以後的版本有可能支援,但至少目前不支援 2.外來鍵列必須建立了索引,mysql 4.1.2以後的版本在建立外來鍵時會自動建立索引,但如...