Documentation PostgreSQL 8.0.25 | ||||
---|---|---|---|---|
Pr�c�dent | Arri�re rapide | Avance rapide | Suivant |
SET CONSTRAINTS initialise le comportement de la v�rification des contraintes dans la transaction en cours. Les contraintes IMMEDIATE sont v�rifi�es � la fin de chaque instruction. Les contraintes DEFERRED ne sont v�rifi�es qu'� la validation de la transaction. Chaque contrainte a son propre mode IMMEDIATE ou DEFERRED.
� la cr�ation, une contrainte se voit donn�e une des trois caract�ristiques : DEFERRABLE INITIALLY DEFERRED, DEFERRABLE INITIALLY IMMEDIATE ou NOT DEFERRABLE. La troisi�me classe est toujours IMMEDIATE et n'est pas affect�e par la commande SET CONSTRAINTS. Les deux premi�res classes commencent chaque transaction dans le mode indiqu� mais leur comportement peut changer � l'int�rieur d'une transaction par SET CONSTRAINTS.
SET CONSTRAINTS avec une liste de noms de contraintes modifie le mode de ces contraintes (qui doivent toutes �tre diff�rables). S'il existe plusieurs contraintes correspondant � un nom donn�, elles sont toutes affect�es. SET CONSTRAINTS ALL modifie le mode de toutes les contraintes diff�rables.
Lorsque SET CONSTRAINTS modifie le mode d'une contrainte de DEFERRED � IMMEDIATE, le nouveau mode prend effet r�troactivement : toute modification de donn�es qui aurait �t� v�rifi�e � la fin de la transaction est en fait v�rifi�e lors de l'ex�cution de la commande SET CONSTRAINTS. Si une contrainte est viol�e, la commande SET CONSTRAINTS �choue (et ne change pas le mode de contrainte). Du coup, SET CONSTRAINTS peut �tre utilis�e pour forcer la v�rification de contraintes � un point sp�cifique d'une transaction.
Actuellement, seules les contraintes de cl�s �trang�res sont affect�es par ce param�trage. Les contraintes de v�rification et les contraintes uniques sont toujours imm�diates.
Cette commande alt�re seulement le comportement des contraintes � l'int�rieur de la transaction en cours. Du coup, si vous ex�cutez cette commande en dehors d'un bloc de transaction (pair BEGIN/COMMIT), elle ne semble pas avoir d'effet.
Cette commande est compatible avec le comportement d�fini par le standard SQL � part le fait que dans PostgreSQL, elle ne s'applique qu'aux contraintes de cl�s �trang�res.
Le standard SQL indique que les noms de contraintes apparaissant dans SET CONSTRAINTS peut �tre qualifi�s avec le nom du sch�ma. Ceci n'est pas encore support� par PostgreSQL : les noms ne doivent pas �tre qualifi�s et toutes les contraintes correspondant � la commande sont affect�es quelque soit le sch�ma o� elles se trouvent.
Pr�c�dent | Sommaire | Suivant |
SET | Niveau sup�rieur | SET SESSION AUTHORIZATION |