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

簡(jiǎn)單談一談MySQL數(shù)據(jù)庫(kù)外鍵約束的一些知識(shí)

數(shù)據(jù)庫(kù) MySQL
本文我們主要介紹了MySQL數(shù)據(jù)庫(kù)外鍵約束需要滿足的條件以及外鍵約束對(duì)子表和父表的含義,希望能夠?qū)δ兴鶐椭?/div>

本文我們主要介紹一些MySQL數(shù)據(jù)庫(kù)外鍵約束的知識(shí),接下來(lái)就讓我們一起來(lái)了解一下吧。

外鍵約束須滿足以下條件:

父子表都為innodb,不是臨時(shí)表。

在子表上,必須存在一個(gè)索引,外鍵列是索引列的全部或部分,但必須是開(kāi)頭部分,并且順序一致; 從mysql4.1.2開(kāi)始,如果不存在索引,會(huì)自動(dòng)創(chuàng)建外鍵上的索引; 加速約束檢查/避免全表掃描。

在父表上,必須存在一個(gè)索引,被參照鍵是索引列的全部或部分,但必須是開(kāi)頭部分,并且順序一致; 加速約束檢查/避免全表掃描。

不允許在外鍵前綴或后綴上索引; 外鍵不能包括text/blob列。

如果指定約束標(biāo)識(shí)符symbol, 那么必須數(shù)據(jù)庫(kù)范圍***; 不指定時(shí),系統(tǒng)會(huì)自動(dòng)產(chǎn)生。

父子表的相應(yīng)列必須有相似的內(nèi)部數(shù)據(jù)類(lèi)型, 以便進(jìn)行比較時(shí)不必進(jìn)和類(lèi)型轉(zhuǎn)換。

對(duì)于數(shù)字類(lèi)型,類(lèi)型長(zhǎng)度與符號(hào)必須相同。

對(duì)于字符類(lèi)型, 長(zhǎng)度不必相同。

如果創(chuàng)建一個(gè)on delete set null或on update set null約束,子表的列必須不能為not null。

從mysql3.23.50開(kāi)始,如果外鍵或候選鍵(被引用鍵)列上有null值,mysql 將不進(jìn)行check。

外鍵約束對(duì)子表的含義:

如果在父表中找不到候選鍵,則不允許在子表上進(jìn)行insert/update。

外鍵約束對(duì)父表的含義:

在父表上進(jìn)行update/delete以更新或刪除在子表中有一條或多條對(duì)應(yīng)匹配行的候選鍵時(shí),父表的行為取決于:在定義子表的外鍵時(shí)指定的on update/on delete子句, InnoDB支持5種方式, 分列如下:

cascade方式

在父表上update/delete記錄時(shí),同步update/delete掉子表的匹配記錄;

On delete cascade從mysql3.23.50開(kāi)始可用; on update cascade從mysql4.0.8開(kāi)始可用。

set null方式

在父表上update/delete記錄時(shí),將子表上匹配記錄的列設(shè)為null;

要注意子表的外鍵列不能為not null;

On delete set null從mysql3.23.50開(kāi)始可用; on update set null從mysql4.0.8開(kāi)始可用。

No action方式

如果子表中有匹配的記錄,則不允許對(duì)父表對(duì)應(yīng)候選鍵進(jìn)行update/delete操作;

這個(gè)是ANSI SQL-92標(biāo)準(zhǔn),從mysql4.0.8開(kāi)始支持。

Restrict方式

同no action, 都是立即檢查外鍵約束;

Set default方式

解析器認(rèn)識(shí)這個(gè)action,但I(xiàn)nnodb不能識(shí)別。

注意:trigger不會(huì)受外鍵cascade行為的影,,即不會(huì)解發(fā)trigger。

關(guān)于MySQL數(shù)據(jù)庫(kù)外鍵約束的知識(shí)就介紹到這里了,希望本次的介紹能夠給您帶來(lái)一些收獲,謝謝!

【編輯推薦】

  1. 教你五招,快速提升MySQL可擴(kuò)展性
  2. 有關(guān)MySQL數(shù)據(jù)庫(kù)的INI文件的詳細(xì)介紹
  3. MySQL數(shù)據(jù)庫(kù)各種存儲(chǔ)引擎及其作用簡(jiǎn)介
  4. MySQL數(shù)據(jù)庫(kù)命令行常用命令大全總結(jié)篇
  5. MySQL數(shù)據(jù)庫(kù)修改MySQL密碼的六種措施總結(jié)
責(zé)任編輯:趙鵬 來(lái)源: 火魔網(wǎng)
相關(guān)推薦

2011-07-26 15:47:01

SQL Server數(shù)外鍵約束

2010-01-05 09:24:42

MySQL外鍵約束

2019-11-05 08:20:13

MySQL數(shù)據(jù)庫(kù)外鍵

2020-08-07 08:04:03

數(shù)據(jù)庫(kù)MySQL技術(shù)

2011-09-01 10:56:34

2011-07-28 09:49:04

Oracle數(shù)據(jù)庫(kù)服務(wù)Oracle實(shí)例

2010-05-26 17:40:14

MySQL數(shù)據(jù)庫(kù)

2021-09-15 09:51:36

數(shù)據(jù)庫(kù)架構(gòu)技術(shù)

2011-07-29 15:58:53

SGAOracle

2011-08-24 17:55:46

SQL Server頁(yè)

2010-05-21 13:34:53

MySQL數(shù)據(jù)庫(kù)

2022-07-04 10:51:27

數(shù)據(jù)中臺(tái)數(shù)據(jù)倉(cāng)庫(kù)

2018-06-21 14:50:00

2021-02-19 09:19:11

消息隊(duì)列場(chǎng)景

2011-03-10 13:19:47

Oracle數(shù)據(jù)庫(kù)

2010-10-09 10:29:29

MySQL外鍵

2018-11-29 14:30:42

數(shù)據(jù)庫(kù)外鍵約束應(yīng)用程序

2010-05-12 15:41:21

MySQL數(shù)據(jù)庫(kù)

2018-08-21 14:42:29

閃存存在問(wèn)題

2021-07-28 20:12:17

WindowsHeap內(nèi)存
點(diǎn)贊
收藏

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