更改外鍵引用操作
外鍵約束透過建立表之間的關係來強制資料完整性。常見的場景是管理刪除引用記錄時的行為。本文介紹如何變更引用操作,特別是從 ON DELETE CASCADE 變更為 ON DELETE RESTRICT。
ON DELETE CASCADE 與 ON DELETE RESTRICT
ON DELETE CASCADE:當刪除父記錄時,所有符合的子記錄都會自動刪除。此行為可能會導致意外的資料遺失。
ON DELETE RESTRICT:防止刪除具有任何子記錄的父記錄。這可確保保持資料完整性。
更改引用操作的SQL 指令
以下SQL 指令修改外鍵列的參考操作:
ALTER TABLE <table_name> ADD CONSTRAINT <constraint_name> FOREIGN KEY (<column_name>) REFERENCES <referenced_table_name> ON DELETE <referential_action>
在您的情況下, table_name 是“table1”,constraint_name 是“fk_table2_id”, column_name為“fk_table2_id”,referenced_table_name 為“table2”,referential_action 為“RESTRICT”。
範例
假設您有兩個表,「table1」和"table2":
CREATE TABLE table1 ( id INT NOT NULL, fk_table2_id INT NOT NULL, PRIMARY KEY (id), FOREIGN KEY (fk_table2_id) REFERENCES table2(id) ON DELETE CASCADE ); CREATE TABLE table2 ( id INT NOT NULL, PRIMARY KEY (id) );
更改將「table1」中的外鍵約束設定為ON DELETE RESTRICT,執行以下命令:
ALTER TABLE table1 ADD CONSTRAINT fk_table2_id FOREIGN KEY (fk_table2_id) REFERENCES table2(id) ON DELETE RESTRICT;
如果「table1」中仍有子記錄引用它,這將防止刪除「table2」中的任何記錄.
以上是如何將外鍵的引用操作從 ON DELETE CASCADE 變更為 ON DELETE RESTRICT?的詳細內容。更多資訊請關注PHP中文網其他相關文章!