自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

理清mysql外鏈的含義和命令

數(shù)據(jù)庫 MySQL
mysql是大家非常熟悉的小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng),雖然mysql的功能性未必很強大,但是mysql由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,贏得了很多用戶的喜愛,本文將為大家介紹mysql外鏈的含義和命令。

通常說到外鏈,只會提到“外鏈的目的是確定資料的參考完整性(referential integrity)。”,但是外鏈具體包含哪些動作和含義呢?

1、設(shè)置外鏈:

(1)、通過create table創(chuàng)建外鍵:

看2行代碼,是建表中的命令:

create table city(
......
key idx_fk_country_id (country_id),
constraint fk_city_country Foreign Key(country_id) References country(country_id) on DELETE restrict ON update cascade ON Delete cascade
)...


注:ON update cascade ON Delete cascade級聯(lián)更新和級聯(lián)刪除。

通常在設(shè)置外鏈時,都會先設(shè)置外鏈字段的索引,如上:key idx_fk_country_id (country_id),但這不是非必需的,上面代碼中:


key idx_fk_country_id (country_id),
constraint fk_city_country


這些是可以省去的,直接從FOREIGN KEY開始。當然,如果要給外鏈命名,則constraint 是必需要的,

如果沒有key idx_fk_country_id (country_id),這行時,在設(shè)置外鏈后,mysql會自動加上key索引(即標準index索引).可以在建完表后用show create table city;來查看。

(2)、通過alter table創(chuàng)建外鍵:——注意命令中不是用 modify。而是add

ALTER TABLE city ADD INDEX idx_city(countryid);

ALTER TABLE city ADD CONSTRAINT fk_city_country FOREIGN KEY (countryid) REFERENCES country(country_id) ON DELETE CASCADE;

2、刪除外鍵:

ALTER TABLE tbname DROP FOREIGN KEY fk_fkname;

但是如果定義時沒有指定CONSTRAINT fk_fkname(即外鍵符號)時該怎么刪除呢?別急,沒有指定時,MySQL會自己創(chuàng)建一個,可以通過以下命令查看:SHOW CREATE TABLE tbname;然后再執(zhí)行上面的命令。

3、外鏈的具體動作:

注意,on DELETE restrict和on DELETE cascade不能同時定義

默認動作1:

當增加子表中外鍵值時,如果父表主鍵不存在該值時,則禁止插入。

默認動作2:

當主表刪除某記錄時,如果子表有對應(yīng)該錄的內(nèi)容時,禁止刪除

因此,上面的可以on DELETE restrict略去。

非默認動作——級聯(lián)更新:

當父表更新主鍵時,如果子表有對應(yīng)記錄,則自動更新子表,這一動作用ON update cascade來實現(xiàn)。

非默認動作——級聯(lián)刪除:

當父表更新主鍵時,如果子表有對應(yīng)記錄,則自動更新子表,這一動作用ON Delete cascade來實現(xiàn)。

4、外鍵的其它參數(shù):

a、set null : 表示父表在更新或刪除時,子表對應(yīng)的字段被set null.

b、no action : 和restrict相同,限制在子表有關(guān)聯(lián)記錄的情況下父表不能更新。

5、臨時關(guān)閉外鍵檢查:

常用于:

A、導入多個表數(shù)據(jù)時,需要忽略之前表的導入順序,

B、執(zhí)行LOAD DATA和ALTER TABLE操作時。

命令:

set foreign_key_checks=0

完成之后,重新開啟外鍵檢查用set foreign_key_checks=1;來恢復

通過上文的學習相信大家對mysql外鏈的含義和命令已經(jīng)有了更多的理解,本文對剛剛?cè)腴T的初學者來說是比較適合閱讀的,是初學者入門必學的知識,希望對大家有所幫助。

【編輯推薦】

  1. 教你如何安全配置MySQL數(shù)據(jù)庫
  2. MySQL使用前須知
  3. MysQL數(shù)據(jù)庫的技術(shù)特點點評

 

責任編輯:迎迎 來源: 中國站長站綜合
相關(guān)推薦

2010-07-13 15:31:49

ftp命令

2010-06-04 11:34:16

MySQL外鏈

2011-05-26 17:07:39

SEO外鏈

2010-06-30 10:26:43

2011-05-25 17:45:59

外鏈

2011-06-21 17:56:56

外鏈相關(guān)域

2011-05-23 18:01:19

外鏈

2011-07-03 20:29:28

外鏈

2013-01-16 09:04:26

路由器PIM命令路由知識

2011-06-19 12:04:35

外鏈

2025-04-16 07:39:38

2011-05-31 13:43:46

外鏈

2012-12-27 14:22:24

2011-05-20 18:36:01

外鏈

2011-06-23 14:35:31

外鏈

2024-03-08 08:23:38

ping命令網(wǎng)絡(luò)

2011-06-29 17:51:55

SEO外鏈

2011-06-10 15:04:41

SEO外鏈

2010-07-06 15:10:05

UDP協(xié)議

2011-06-22 15:56:19

外鏈SEO
點贊
收藏

51CTO技術(shù)棧公眾號