在 mysql 中,可通過以下步驟創建表外鍵:創建父表和子表,并確保父表存在相應列。使用 foreign key 約束將子表中的列與父表中的列關聯。可選地指定級聯操作,定義刪除或更新父表記錄時對子表記錄的影響。運行查詢檢查外鍵約束是否已正確應用。
如何使用 MySQL 創建表外鍵
在 MySQL 中,外鍵約束用于確保子表中的記錄與父表中的相關記錄相對應。它有助于維護數據一致性和完整性。以下是創建外鍵的步驟:
1. 創建父表和子表
首先,創建包含外鍵列的子表。確保父表中存在相應的列。例如:
<code class="sql">CREATE TABLE parent_table ( id INT NOT NULL, name VARCHAR(255) ); CREATE TABLE child_table ( id INT NOT NULL, parent_id INT, name VARCHAR(255) );</code>
登錄后復制
2. 創建外鍵約束
在子表中使用 FOREIGN KEY
約束將子表中的 parent_id
列與父表中的 id
列關聯起來。例如:
<code class="sql">ALTER TABLE child_table ADD FOREIGN KEY (parent_id) REFERENCES parent_table (id);</code>
登錄后復制
3. 指定級聯操作(可選)
級聯操作定義當父表中的記錄被刪除或更新時,外鍵約束如何影響子表中的相關記錄。您可以使用 ON DELETE
和 ON UPDATE
子句指定這些操作。例如:
<code class="sql">ALTER TABLE child_table ADD FOREIGN KEY (parent_id) REFERENCES parent_table (id) ON DELETE CASCADE ON UPDATE RESTRICT;</code>
登錄后復制
該示例指定:
當父表中引用的父記錄被刪除時,將從子表中級聯刪除相關子記錄。
當父表中的引用的父記錄被更新時,將阻止更新。
4. 檢查約束
創建外鍵約束后,運行以下查詢檢查約束是否已應用:
<code class="sql">SELECT * FROM child_table WHERE parent_id NOT IN (SELECT id FROM parent_table);</code>
登錄后復制
如果查詢返回結果,則表明子表中存在沒有父記錄相對應的記錄,外鍵約束未正確應用。