Oracle
 sql >> Base de données >  >> RDS >> Oracle

Le tableau est en train de muter, le déclencheur/la fonction peut ne pas le voir (empêcher une note moyenne de descendre en dessous de 2,5)

Vous devez d'abord lire sur les déclencheurs, l'erreur de table de mutation et les déclencheurs composés :http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/triggers.htm#LNPLS2005

Votre déclencheur est APRÈS LA MISE À JOUR OU L'INSERTION OU LA SUPPRESSION. Cela signifie que si vous exécutez des instructions UPDATE OR INSERT OR DELETE sur cette table, le déclencheur se déclenchera. Mais vous essayez de mettre à jour à nouveau la même table dans votre déclencheur, ce qui est compl. mauvais. C'est pourquoi vous obtenez l'erreur. Vous ne pouvez pas modifier la même table sur laquelle le déclencheur se déclenche. Le but du déclencheur est de se déclencher automatiquement lorsque la table est mise à jour, insérée ou supprimée dans votre cas. Ce dont vous avez besoin, c'est d'une procédure, pas d'un déclencheur.