MySQL 外鍵約束指的是對表與表之間的關系進行限制的一種約束。它可以在一個表中定義一個列,這個列將引用另外一個表中的列。這種關聯關系可以確保數據的完整性和一致性。
使用外鍵約束可以實現以下幾點:
1. 防止刪除父表中的記錄
CREATE TABLE 表名( id INT PRIMARY KEY, ... ); CREATE TABLE 子表名稱( id INT PRIMARY KEY, rid INT, ... CONSTRAINT fk_table1 FOREIGN KEY(rid) REFERENCES 表名(id) );
這段代碼中,使用 FOREIGN KEY 和 REFERENCES 關鍵字進行關聯。在子表中使用外鍵約束來引用父表,當父表中的記錄被刪除時,將會阻止刪除包含該記錄的子表的行。
2. 防止插入無效的值
CREATE TABLE 表名( id INT PRIMARY KEY, ... ); CREATE TABLE 子表名稱( id INT PRIMARY KEY, rid INT, ... CONSTRAINT fk_table1 FOREIGN KEY(rid) REFERENCES 表名(id) );
這段代碼中,使用 FOREIGN KEY 和 REFERENCES 關鍵字進行關聯。在子表中使用外鍵約束來引用父表,當嘗試向子表中插入一個不存在于父表中的值時,將會被拒絕。
3. 保證數據的完整性和一致性
CREATE TABLE 表名( id INT PRIMARY KEY, ... ); CREATE TABLE 子表名稱( id INT PRIMARY KEY, rid INT, ... CONSTRAINT fk_table1 FOREIGN KEY(rid) REFERENCES 表名(id) );
這段代碼中,使用 FOREIGN KEY 和 REFERENCES 關鍵字進行關聯。在子表中使用外鍵約束來引用父表,確保了子表中的 rid 列一定從父表的 id 列中獲取。這種關聯關系可以保證數據的完整性和一致性。