Documentation PostgreSQL 7.4.29 | ||||
---|---|---|---|---|
Pr�c�dent | Arri�re rapide | Chapitre 34. Syst�me de r�gles | Avance rapide | Suivant |
Le serveur PostgreSQL renvoie une cha�ne de statut de commande, comme INSERT 149592 1, pour chaque commande qu'il re�oit. C'est assez simple lorsqu'il n'y a pas de r�gles impliqu�es. Mais qu'arrive-t'il lorsque la requ�te est r��crite par des r�gles ?
Les r�gles affectent le statut de la commande de cette fa�on :
S'il n'y a pas de r�gle INSTEAD inconditionnelle pour la requ�te, alors la requ�te donn�e originellement sera ex�cut�e et son statut de commande sera renvoy� comme d'habitude. (Mais notez que s'il y avait des r�gles INSTEAD conditionnelles, la n�gation de leur qualifications sera ajout� � la requ�te initiale. Ceci pourrait r�duire le nombre de lignes qu'il traite et, si c'est le cas, le statut rapport� en sera affect�.)
S'il y a des r�gles INSTEAD inconditionnelles pour la requ�te, alors la requ�te originale ne sera pas ex�cut�e du tout. Dans ce cas, le serveur renverra le statut de la commande pour la derni�re requ�te qui a �t� ins�r�e par une r�gle INSTEAD (conditionnelle ou non) et est du m�me type de commande (INSERT, UPDATE ou DELETE) que la requ�te originale. Si aucune requ�te ne rencontrant ces pr�-requis n'est ajout�e � une r�gle, alors le statut de commande renvoy� affiche le type de requ�te original et annule le compteur de ligne et le champ OID.
(Ce syst�me a �t� �tabli pour PostgreSQL 7.3. Dans les versions pr�c�dentes, le statut de commande pourrait afficher des r�sultats diff�rents lorsque les r�gles existent.)
Le programmeur peut s'assurer que toute r�gle INSTEAD d�sir�e est celle qui initialise le statut de commande dans le deuxi�me cas en lui donnant un nom de r�gle �tant le dernier en ordre alphab�tique parmi les r�gles actives pour qu'elle soit appliqu�e en dernier.
Pr�c�dent | Sommaire | Suivant |
R�gles et droits | Niveau sup�rieur | R�gles contre d�clencheurs |