Je voudrais créer un déclencheur pour Sybase, mais il montre une erreur. Ce que je veux faire est, quand une opération de suppression est faite sur la table [student]
, pour vérifier s'il y a n'importe quel enregistrement lié à l'étudiant sur [compte], et si oui, soulevez une exception.Question de déclenchement SQL: pourquoi est-ce une erreur de syntaxe?
Il semble y avoir un manque de support de la part de Sybase. Leurs officiels ne semblent pas des gens à visiter.
*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*
Quelle erreur affiche-t-elle? –
J'utilise sybase ISQL, Il montre près BEGIN en ligne: 14, mais si je retire IF @acc IS NOT NULL BEGIN SIGNAL acc_not_null FIN Il reste une erreur, si je retire de la ligne 9 (à partir de Sélectionnez ...) à la ligne 15, c'est un succès. – Cheung
Correct: Afficher l'erreur près de BEGIN en ligne: 14 – Cheung