Я хотел бы создать триггер для 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 НАЧАТЬ СИГНАЛ acc_not_null END Это еще ошибка, если я удалить из строки 9 (Начать с Выберите ...) в строке 15, это успех. – Cheung
Правильно: он показывает ошибку около BEGIN в строке: 14 – Cheung