我想爲Sybase創建一個觸發器,但它顯示一個錯誤。SQL觸發器問題:爲什麼這是一個語法錯誤?
我想要做的是,當在[student]
表上完成刪除操作時,檢查[account]上是否有與學生相關的任何記錄,如果是,則引發異常。
似乎缺乏Sybase的支持。他們的官員似乎沒有人去拜訪。
*CREATE TRIGGER AccountChecker
BEFORE DELETE ON student
REFERENCING OLD AS old_student
FOR EACH ROW
BEGIN
DECLARE @acc CHAR(4);
DECLARE @acc_not_null EXCEPTION FOR SQLSTATE '99999';
SELECT @acc=account.account_number FROM account
WHERE account.student_id = old_student.student_id;
IF @acc IS NOT NULL
BEGIN
SIGNAL acc_not_null
END
END*
顯示什麼錯誤? – 2009-04-19 11:14:26
我使用Sybase ISQL,這表明附近開始行:14,但如果我刪除 IF @acc IS NOT NULL BEGIN 信號acc_not_null END 它仍然錯誤,如果我距離9號線(從開始刪除選擇...)到第15行,它就成功了。 – Cheung 2009-04-19 11:29:27
正確:在BEGIN附近顯示錯誤:14 – Cheung 2009-04-19 11:29:59