我之前爲我的mysql項目創建了一個觸發器,它運行良好。不過,我試圖改變這個觸發器,以適合pl-sql(oracle)。這是我原來的代碼在MySQL工作:將mysql觸發器轉換爲pl/sql觸發器
DELIMITER $$
CREATE TRIGGER course_title_delete AFTER DELETE on Course
FOR EACH ROW
BEGIN
DECLARE rownumber INT;
SET rownumber = (SELECT COUNT(*) FROM Course
WHERE Course_code=old.Course_code);
IF rownumber = 0
THEN
DELETE FROM Course_title
WHERE Course_title.Course_code=old.Course_code;
END IF;
END$$
DELIMITER ;
而這一次是我試圖轉換PL-SQL格式相同的代碼。但是,當我作爲腳本上傳並嘗試在頂點運行時,它不起作用。
CREATE OR REPLACE TRIGGER course_title_delete
AFTER DELETE ON course
FOR EACH ROW
BEGIN
DECLARE rownumber INT;
SET rownumber = (SELECT COUNT(*) FROM course
WHERE course_code= :old.course_code);
IF rownumber = 0
THEN
DELETE FROM course_title
WHERE course_title.course_code:=:old.course_code;
END IF;
END;
/
什麼是錯誤? 「不工作」是什麼意思?在這兩個數據庫中,它看起來像可以用級聯外鍵約束替換觸發器。 –
「錯誤在第3行:PLS-00103:遇到符號」=「當期望以下之一時::。(@%;非空範圍默認字符」這是錯誤,當我在apex sql中運行它時腳本部分 –