- 工信部備案號 滇ICP備05000110號-1
- 滇公安備案 滇53010302000111
- 增值電信業(yè)務(wù)經(jīng)營許可證 B1.B2-20181647、滇B1.B2-20190004
- 云南互聯(lián)網(wǎng)協(xié)會理事單位
- 安全聯(lián)盟認(rèn)證網(wǎng)站身份V標(biāo)記
- 域名注冊服務(wù)機(jī)構(gòu)許可:滇D3-20230001
- 代理域名注冊服務(wù)機(jī)構(gòu):新網(wǎng)數(shù)碼
在MySQL中,InnoDB引擎類型的表支持了外鍵約束。
外鍵的使用條件:外鍵的定義語法:
代碼如下:
1.該語法可以在 CREATE TABLE 和 ALTER TABLE 時使用,如果不指定CONSTRAINT symbol,MYSQL會自動生成一個名字。ON DELETE、ON UPDATE表示事件觸發(fā)限制,可設(shè)參數(shù):
2. SET NULL: 從父表中刪除或更新對應(yīng)的行,同時將子表中的外鍵列設(shè)為空。注意,這些在外鍵列沒有被設(shè)為NOT NULL時才有效。ON DELETE SET NULL和ON UPDATE SET SET NULL都被InnoDB所支持。
3. NO ACTION: InnoDB拒絕刪除或者更新父表。
4. RESTRICT: 拒絕刪除或者更新父表。指定RESTRICT(或者NO ACTION)和忽略O(shè)N DELETE或者ON UPDATE選項的效果是一樣的。
5. SET DEFAULT: InnoDB目前不支持。
外鍵約束使用最多的兩種情況無外乎:
1)父表更新時子表也更新,父表刪除時如果子表有匹配的項,刪除失敗;
2)父表更新時子表也更新,父表刪除時子表匹配的項也刪除。
前一種情況,在外鍵定義中,我們使用ON UPDATE CASCADE ON DELETE RESTRICT;后一種情況,可以使用ON UPDATE CASCADE ON DELETE CASCADE。
InnoDB允許你使用ALTER TABLE在一個已經(jīng)存在的表上增加一個新的外鍵:
1
2
3
4
5
6
|
ALTERTABLEtbl_name
ADD[CONSTRAINT[symbol]]FOREIGNKEY
[index_name] (index_col_name, ...)
REFERENCEStbl_name (index_col_name,...)
[ONDELETEreference_option]
[ONUPDATEreference_option]
|
ALTER TABLE tbl_name DROP FOREIGN KEY fk_symbol;
售前咨詢
售后咨詢
備案咨詢
二維碼
TOP