簡體   English   中英

mysql觸發器刪除原始

[英]mysql triggers on delete a raw

我有兩個表作為學生和證書,我需要從學生表中刪除學生時從證書表中刪除與特定學生相關的證書。 我對mysql觸發器不是很熟悉。 請幫助我

這是我嘗試過但我不確定它是否正確

DELIMITER $$  
CREATE TRIGGER delCerts AFTER DELETE ON students
FOR EACH ROW
BEGIN
DELETE FROM certificates as certs WHERE certs.stCode = students.stCode;
END;
$$

在InnoDB數據庫中,您可以通過在證書表中使用外鍵來實現它:

idStudent INT NOT NULL,
FOREIGN KEY (idStudent) REFERENCES Students (id)
  ON DELETE CASCADE
  ON UPDATE CASCADE

從stuends表中刪除學生時 - 所有相關證書也將被刪除。 我認為這比觸發更好,因為如果你或某人將禁用觸發器(意外或故意)你的數據庫將是不一致的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM