Mysql-外鍵foreign key

來源:互聯網
上載者:User

標籤:允許   span   添加   嚴格   nod   保持資料   重複   mysq   資料   

1、定義:如果一張表中有一個欄位指向另一張表的主鍵,就子表中將該主鍵欄位叫做外鍵。

    一張表中可存在多個外鍵

2、外鍵的作用

  保持資料的一致性、完整性

  a、對子表(外鍵所在的表)的作用:子表在進行寫操作的時候,如果外鍵欄位在父表中找不到對應的匹配,操作就會失敗。

  b、對父表的作用:對父表的主鍵欄位進行刪除和更改時,如果對應的主鍵在子表中被引用,操作就會失敗

 

3、外鍵的定製作用----三種約束模式:

  district:strict 模式(預設), 父表不能刪除或更新一個被子表引用的記錄。

 

  cascade:級聯模式, 父表操作後,子表關聯的資料也跟著一起操作。

 

  set null:置空模式,前提外鍵欄位允許為NLL,  父表操作後,子表對應的欄位被置空

4、使用外鍵的前提:

  1. 表儲存引擎必須是innodb,否則建立的外鍵無約束效果。

  2. 外鍵的列類型必須與父表的主鍵類型完全一致。

  3. 外鍵的名字不能重複。

  4. 已經存在資料的欄位被設為外鍵時,必須保證欄位中的資料與父表的主鍵資料對應起來。

5、新增外鍵

  a、建表時添加

CREATE TABLE my_tab1(        id int PRIMARY KEY auto_increment,        name varchar(10) not null,        class int,        FOREIGN KEY(class) REFERENCES my_tab2(主鍵欄位名))charset utf8      

  b、在建好的表中添加

ALTER  TABLE my_tab1 ADD [constraint  外鍵名] FOREIGN KEY(外鍵欄位名)    REFERENCES my_tab2(主鍵欄位名)

6、刪除外鍵

ALERT TABLE my_tab DROP  FOREIGN KEY 外鍵名稱

 

 

  

 

Mysql-外鍵foreign key

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.