我想爲我的表table_master
創建觸發器。MySQL觸發器:檢查主鍵ID是否在其他表中使用
的table_master
表架構很簡單:
master_id INT(11) AUTO_INCREMENT, PRIMARY, NOT NULL
title VARCHAR(50) NOT NULL
,這裏是另一個關係表rel_master_another_tbl
master_id INT(11) PRIMARY, NOT NULL
another_id INT(11) PRIMARY, NOT NULL
我想實現的是,當DELETE
查詢上table_master
發出後,觸發器將檢查在rel_master_another_tbl
中是否使用master_id
。 UPDATE:如果是,則回滾/取消DELETE
查詢。
我該如何做到這一點?
CREATE TRIGGER check_before_delete BEFORE DELETE ON table_master
// what should I put here?
END;
檢查並做什麼?使用ON DELETE RESTRICT觸發器可以在表之間定義外鍵約束時編寫代碼似乎很簡單。 – Perception
我想停止DELETE查詢,一旦發現ID正在使用 – Raptor
,這正是* ON DELETE RESTRICT觸發器所做的。如果嘗試刪除外鍵所引用的父表中的行,它將停止查詢繼續。 – Perception