我有一個觸發器:QUERY「IF NOT EXISTS」....爲什麼它不起作用?
CREATE TRIGGER BEFORE_DELETE_ON_SENTIERO__HA__TAPPA
BEFORE DELETE ON SENTIERO__HA__TAPPA
FOR EACH ROW
BEGIN
DECLARE temp_prima_tappa INTEGER;
DECLARE temp_ultima_tappa INTEGER;
-- NOW THIS QUERY WILL FAIL; it checks if the record that has to be deleted is in the table
IF NOT EXISTS (SELECT *
FROM SENTIERO__HA__TAPPA as sht
WHERE OLD.IDsentiero=sht.IDsentiero and OLD.IDtappa=sht.IDtappa) THEN
SIGNAL SQLSTATE '45000'
SET MESSAGE_TEXT = 'DELETE: La tappa indicata non è nel sentiero; impossibile elimnarla';
END IF;
IDsentiero和IDtappa是其相對錶的PK:IDsentiero爲的Sentiero,IDtappa爲TAPPA。
問題是,DELETE QUERY不回覆我的錯誤消息;只需即可運行DELETE QUERY,但它不能刪除任何東西,因爲該表中不存在該記錄。
問題是,查詢..我敢肯定,但我找不到錯誤。
你的第二張桌子在哪? – TheDeadLike 2013-02-09 19:08:43
Exexse me。它是一個刪除觸發器(行觸發器)...我認爲OLD.column是關於刪除記錄的列...你同意嗎? – FrancescoN 2013-02-09 20:23:30