MySQL外鍵簡(jiǎn)介
MySQL外鍵是一種用于保持表之間關(guān)聯(lián)關(guān)系的約束條件。外鍵會(huì)將數(shù)據(jù)表之間的關(guān)系翻譯成一個(gè)語(yǔ)言,這個(gè)語(yǔ)言描述的是子集或父級(jí)數(shù)據(jù)表之間的關(guān)聯(lián)關(guān)系。外鍵可以保證數(shù)據(jù)表之間的完整性,同時(shí)也可以支持?jǐn)?shù)據(jù)關(guān)系的查詢(xún)。使用外鍵是確保數(shù)據(jù)庫(kù)數(shù)據(jù)時(shí)一致的一種有效的方式。在MySQL中,外鍵是指關(guān)系型數(shù)據(jù)庫(kù)中的兩個(gè)表的其中一個(gè)表中的一個(gè)字段成為另一個(gè)表中的主鍵的約束條件。
MySQL外鍵用法
MySQL的外鍵用法可以分為在設(shè)計(jì)表時(shí)添加外鍵和在已有表中添加外鍵兩種情況。
設(shè)計(jì)表時(shí)添加外鍵
CREATE TABLE table1( column1 INT PRIMARY KEY, column2 VARCHAR(50), column3 INT, FOREIGN KEY (column3) REFERENCES table2(column4) );
在已有表中添加外鍵
ALTER TABLE table1 ADD CONSTRAINT fk_column3 FOREIGN KEY (column3) REFERENCES table2(column4);
注意:
1. 在使用外鍵時(shí),需要確保子集表(包含外鍵)中引用的數(shù)據(jù)必須在父級(jí)表(主鍵)中存在。
2. 若已經(jīng)存在一些數(shù)據(jù),那么添加一個(gè)以外鍵作為關(guān)聯(lián)表主鍵時(shí),如果其中的數(shù)據(jù)與外鍵列不匹配,則不允許添加該外鍵。
3. 在建立外鍵時(shí)需要確保外鍵的兩個(gè)表都使用InnoDB存儲(chǔ)引擎(MyISAM不支持外鍵功能)。
MySQL外鍵總結(jié)
MySQL外鍵是一種用于保持表之間關(guān)聯(lián)關(guān)系的約束條件,使用外鍵是確保數(shù)據(jù)庫(kù)數(shù)據(jù)時(shí)一致的一種有效的方式。在使用外鍵時(shí),需要確保子集表中引用的數(shù)據(jù)必須在父級(jí)表中存在。在建立外鍵時(shí)需要確保外鍵的兩個(gè)表都使用InnoDB存儲(chǔ)引擎。