什么是外鍵約束?
在MySQL中,外鍵約束是指在關(guān)系數(shù)據(jù)庫中,兩個表之間建立起一種指向關(guān)系,其中一張表的某一個字段的取值必須在另一張表中的某個字段的取值存在。同時,外鍵約束還可以保證數(shù)據(jù)的完整性和一致性。
如何創(chuàng)建外鍵約束?
在MySQL中創(chuàng)建外鍵約束需要使用到關(guān)鍵字FOREIGN KEY,其語法格式為:ALTER TABLE 表名 ADD CONSTRAINT 外鍵名稱 FOREIGN KEY (外鍵字段) REFERENCES 主鍵表名(主鍵字段)
外鍵名稱
外鍵名稱用于標(biāo)識不同的外鍵約束,建議使用具有唯一性的名稱。
外鍵字段
外鍵字段指的是需要建立外鍵約束的表中的字段名稱。
主鍵表名、主鍵字段
主鍵表名指的是需要與外鍵關(guān)聯(lián)的主表的名稱,主鍵字段則是主表中的某個字段名稱。
示例代碼
下面是一個使用外鍵約束的SQL示例:
CREATE TABLE member(
member_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
member_name VARCHAR(30) NOT NULL,
group_id INT UNSIGNED NOT NULL,
PRIMARY KEY (member_id),
FOREIGN KEY (group_id) REFERENCES groups(group_id)
);
解析代碼
上面的代碼中,member表中的group_id字段與groups表中的group_id字段建立了外鍵關(guān)聯(lián)。如果在member表中插入group_id不存在的數(shù)據(jù),就無法插入成功,并且MySQL還會出現(xiàn)外鍵約束錯誤提示。這就有效地保證了數(shù)據(jù)的完整性和一致性。