mysql中的外鍵foreign key

來源:互聯網
上載者:User

標籤:操作   --   表關聯   類型   匹配   約束   alter   tab   var   

一、如果一張表中有一個非主鍵的欄位指向了別一張表中的主鍵,就將該欄位叫做外鍵。

  一張表中可以有多個外鍵。

  外鍵的預設作用有兩點:

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

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

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

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

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

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

  使用外鍵的前提:

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

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

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

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

二、新增外鍵

  1. 在建立時增加

   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;

  2. 在建立好的表中增加

   alter table my_tab1 add [constraint 外鍵名] foreign key(外鍵欄位名) references mytab2(主鍵欄位名);

三、刪除外鍵

  alter 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.