MySQL是一種使用廣泛的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它的設(shè)計理念是數(shù)據(jù)庫的模型必須是一個正則化的結(jié)構(gòu)。為了建立數(shù)據(jù)表之間的關(guān)聯(lián),MySQL使用外鍵來定義標(biāo)識(ID)關(guān)聯(lián),它指向另一個表中的數(shù)據(jù)記錄。
CREATE TABLE `表1` ( `ID` int(10) NOT NULL AUTO_INCREMENT, `text1` varchar(255) NOT NULL, `text2` varchar(255) NOT NULL, PRIMARY KEY (`ID`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `表2` ( `ID` int(10) NOT NULL AUTO_INCREMENT, `表1_ID` int(10) NOT NULL, `text2` varchar(255) NOT NULL, PRIMARY KEY (`ID`), CONSTRAINT `表1外鍵` FOREIGN KEY (`表1_ID`) REFERENCES `表1` (`ID`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
在上面的代碼中,表2的“表1_ID”列被定義為外鍵。這意味著表2中的每條記錄都必須與表1中的某條記錄相關(guān)聯(lián)。CASCADE選項指定當(dāng)表1中的相關(guān)記錄被刪除或更新時的行為。在這個例子中,當(dāng)主表(表1)中的記錄被刪除時,表2將自動刪除相關(guān)的記錄。
在MySQL中,外鍵被視為數(shù)據(jù)完整性的一部分。由于外鍵強制實施數(shù)據(jù)庫之間的關(guān)聯(lián),因此它們確保表之間的數(shù)據(jù)有效性和一致性。