99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
2018-10-24 閱讀量: 987
MySQL外鍵約束

主鍵:是唯一標(biāo)識(shí)一條記錄,不能有重復(fù)不允許為空,用來(lái)保證數(shù)據(jù)完整性。

外鍵:是另一表的主鍵, 外鍵可以有重復(fù)的, 可以是空值,用來(lái)和其他表建立聯(lián)系用的。所以說,如果談到了外鍵,一定是至少涉及到兩張表。

如果表A的主關(guān)鍵字是表B中的字段,則該字段稱為表B的外鍵,表A稱為主表,表B稱為從表。外鍵是用來(lái)實(shí)現(xiàn)參照完整性的,不同的外鍵約束方式將可以使兩張表緊密的結(jié)合起來(lái),特別是修改或者刪除的級(jí)聯(lián)操作將使得日常的維護(hù)工作更加輕松。外鍵主要用來(lái)保證數(shù)據(jù)的完整性和一致性,所以說,外鍵一定是在從表中創(chuàng)建,從而找到與主表之間的聯(lián)系;從表負(fù)責(zé)維護(hù)二者之間的關(guān)系。

一、外鍵的使用

外鍵的使用需要滿足以下條件:

1、兩張表必須都是InnoDB存儲(chǔ)引擎(MyISAM不支持外鍵),并且它們沒有臨時(shí)表。

2、建立外鍵關(guān)系的對(duì)應(yīng)列必須具有相似的數(shù)據(jù)類型,也就是可以相互轉(zhuǎn)換類型的列,比如int和tinyint可以,而int和char則不可以。

3、建立外鍵關(guān)系的對(duì)應(yīng)列必須建立了索引。

4、假如顯式的給出了CONSTRAINT symbol,那symbol在數(shù)據(jù)庫(kù)中必須是唯一的。假如沒有顯式的給出,InnoDB會(huì)自動(dòng)的創(chuàng)建。

二、添加外鍵的語(yǔ)法

添加外鍵有兩種方式:一種是創(chuàng)建表的時(shí)候添加,另一種是對(duì)已創(chuàng)建的表,修改表結(jié)構(gòu)來(lái)添加。

創(chuàng)建表時(shí)添加外鍵的語(yǔ)法:

[CONSTRAINT symbol] FOREIGN KEY [id] (從表的字段1)

REFERENCES 主表的表名 (主表的字段2)

[ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION}]

[ON UPDATE {RESTRICT | CASCADE | SET NULL | NO ACTION}]

CONSTRAINT symbol:可以給這個(gè)外鍵約束起一個(gè)名字,有了名字,以后找到它就很方便了。如果不加此參數(shù)的話,系統(tǒng)會(huì)自動(dòng)分配一個(gè)名字。

FOREIGN KEY:將從表中的字段1作為外鍵的字段。

REFERENCES:映射到主表的字段2。

ON DELETE后面的四個(gè)參數(shù):代表的是當(dāng)刪除主表的記錄時(shí),所做的約定。

RESTRICT(限制):若主表有對(duì)應(yīng)從表的記錄,此主表將無(wú)法刪除。

CASCADE(級(jí)聯(lián)):若主表的記錄刪掉,則從表中相關(guān)聯(lián)的記錄都將被刪掉。

SET NULL:從主表中刪除或更新對(duì)應(yīng)的行,同時(shí)將從表中的外鍵列設(shè)為空。

NO ACTION:InnoDB拒絕刪除或者更新主表。

修改表結(jié)構(gòu)添加外鍵的語(yǔ)法:

ALTER TABLE 從表的表名 ADD FOREIGN KEY(從表的字段1) REFERENCES 主表的表名(主表的字段2);

ALTER TABLE從表的表名:在從表中進(jìn)行操作。

ADD FOREIGN KEY(從表的字段1):將從表的字段添加為外鍵。

REFERENCES 主表的表名(主表的字段2):映射到主表當(dāng)中為的字段。

外鍵約束使用最多的兩種情況:

主表更新時(shí)從表也更新,主表刪除時(shí)如果從表有匹配的項(xiàng),刪除失??;

ON UPDATE CASCADE ON DELETE RESTRICT;

主表更新時(shí)從表也更新,主表刪除時(shí)從表匹配的項(xiàng)也刪除。

ON UPDATE CASCADE ON DELETE CASCADE;

三、刪除外鍵

獲取外鍵名的語(yǔ)法:

SHOW CREATE TABLE 從表的表名;

刪除外鍵語(yǔ)法:

ALTER TABLE 從表的表名 DROP FOREIGN KEY 外鍵名;

0.0000
4
關(guān)注作者
收藏
評(píng)論(0)

發(fā)表評(píng)論

暫無(wú)數(shù)據(jù)
推薦帖子