在 mysql 中創建表外鍵約束可確保參照完整性。步驟如下:創建兩個表并指定主鍵。在子表中添加 foreign key 約束,引用父表的主鍵。可選擇指定引用操作(例如級聯刪除或限制更新)。
在 MySQL 中創建表外鍵約束
當兩個表之間建立外鍵約束時,可以確保它們之間的參照完整性。以下步驟介紹了在 MySQL 中創建表外鍵約束的方法:
第一步:創建兩個表
創建兩個表,我們要在其中建立外鍵約束:
<code class="sql">CREATE TABLE parent_table ( id INT NOT NULL, name VARCHAR(255) NOT NULL, PRIMARY KEY (id) ); CREATE TABLE child_table ( id INT NOT NULL, parent_id INT NOT NULL, value VARCHAR(255) NOT NULL, PRIMARY KEY (id), FOREIGN KEY (parent_id) REFERENCES parent_table(id) );</code>
登錄后復制
第二步:在子表中添加外鍵約束
在 child_table
中,使用 FOREIGN KEY
約束將 parent_id
列引用到 parent_table
中的 id
列:
<code class="sql">ALTER TABLE child_table ADD FOREIGN KEY (parent_id) REFERENCES parent_table(id);</code>
登錄后復制
第三步:指定引用操作(可選)
您可以使用 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>
登錄后復制
在這段代碼中:
ON DELETE CASCADE
:當從 parent_table
中刪除記錄時,將自動從 child_table
中級聯刪除相關記錄。
ON UPDATE RESTRICT
:當 parent_table
中的記錄被更新時,將阻止對 child_table
中受影響記錄的任何更新。
說明:
確保父表中的列數據類型與子表中的外鍵列相同。
如果父表中的列允許空值,則子表中的外鍵列也必須允許空值。
如果在創建外鍵約束后更改父表中的列,則需要修改外鍵約束以匹配更改。
外鍵約束有助于確保數據完整性,防止插入和刪除不一致的數據。