MySQL是一種關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),它支持外鍵約束。外鍵是一個(gè)列或列組合,用于鏈接兩個(gè)表。它通常用于確保表之間數(shù)據(jù)的一致性和完整性。
對(duì)于兩個(gè)表的關(guān)聯(lián),一個(gè)表中的列稱為“父列”,另一個(gè)表中的列稱為“子列”。外鍵在子表中創(chuàng)建,并引用父表中的列。當(dāng)在子表中插入數(shù)據(jù)時(shí),外鍵用于確保插入的值是存在于父表中的。這樣可以確保在兩個(gè)表之間的關(guān)系保持一致。
--創(chuàng)建父表,指定PRIMARY KEY CREATE TABLE parent ( id int PRIMARY KEY, name varchar(50) ); --創(chuàng)建子表,指定FOREIGN KEY CREATE TABLE child ( id int PRIMARY KEY, parent_id int, name varchar(50), FOREIGN KEY (parent_id) REFERENCES parent(id) );
在上面的示例中,我們創(chuàng)建了一個(gè)名為“parent”的父表。該表包含兩列:一個(gè)名為“id”的主鍵列和一個(gè)名為“name”的列。然后,我們創(chuàng)建了一個(gè)名為“child”的子表。該表包括三列:一個(gè)名為“id”的主鍵列、一個(gè)名為“parent_id”的外鍵列和一個(gè)名為“name”的列。我們使用FOREIGN KEY關(guān)鍵字來(lái)指定外鍵。子表中的“parent_id”列引用父表中的“id”列。
當(dāng)我們向子表中插入數(shù)據(jù)時(shí),MySQL將自動(dòng)檢查外鍵約束。如果我們嘗試插入一個(gè)不存在于父表中的“parent_id”值,MySQL將引發(fā)一個(gè)錯(cuò)誤。通過(guò)使用外鍵約束,我們可以確保在兩個(gè)表之間的關(guān)系保持一致,從而提高數(shù)據(jù)一致性和完整性。