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

熱線電話:13121318867

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

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

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

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

一、外鍵的使用

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

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

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

3、建立外鍵關系的對應列必須建立了索引。

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

二、添加外鍵的語法

添加外鍵有兩種方式:一種是創(chuàng)建表的時候添加,另一種是對已創(chuàng)建的表,修改表結構來添加。

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

[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:可以給這個外鍵約束起一個名字,有了名字,以后找到它就很方便了。如果不加此參數(shù)的話,系統(tǒng)會自動分配一個名字。

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

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

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

RESTRICT(限制):若主表有對應從表的記錄,此主表將無法刪除。

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

SET NULL:從主表中刪除或更新對應的行,同時將從表中的外鍵列設為空。

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

修改表結構添加外鍵的語法:

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

ALTER TABLE從表的表名:在從表中進行操作。

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

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

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

主表更新時從表也更新,主表刪除時如果從表有匹配的項,刪除失?。?/p>

ON UPDATE CASCADE ON DELETE RESTRICT;

主表更新時從表也更新,主表刪除時從表匹配的項也刪除。

ON UPDATE CASCADE ON DELETE CASCADE;

三、刪除外鍵

獲取外鍵名的語法:

SHOW CREATE TABLE 從表的表名;

刪除外鍵語法:

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

0.0000
4
關注作者
收藏
評論(0)

發(fā)表評論

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