Re: verrouiller avant une date donnée

From: William Dode <wilk(at)flibuste(dot)net>
To: pgsql-fr-generale(at)postgresql(dot)org
Subject: Re: verrouiller avant une date donnée
Date: 2009-02-08 22:01:25
Message-ID: gmnknl$5gp$1@ger.gmane.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

On 08-02-2009, Guillaume Lelarge wrote:
> William Dode a écrit :
>> [...]
>> J'ai un cas classique où je dois interdire toute modification sur une
>> période donnée. Comme en compta quand on clôture un exercice.
>> Ca concerne plusieurs tables.
>>
>> Je vais donc créer un trigger qui va vérifier la date de ma ligne, que
>> ce soit pour un update, insert ou delete. Seulement, je me demande
>> comment je vais indiquer la date en question...
>>
>> Si j'indique la date dans une autre table, ça va obliger le trigger
>> à faire une requête systématiquement, ça me semble lourd.
>>
>> L'autre solution serait de regénérer le trigger et d'y indiquer la date
>> en dur, chaque fois que je change cette date.
>>
>> Est-ce qu'il y a mieux ?
>>
>
> Pourquoi pas une colonne booléen supplémentaire indiquant si la ligne
> est verrouillée ? et le trigger qui vérifie cette colonne évidemment,
> pour annuler les modifications si nécessaire.

Ca serait intéressant parce que ça permettrait de déverrouiller une
partie au besoin. Mais par contre ça ne me permettra pas de verrouiller
sur les insertions (je veux interdire d'ajouter une ligne avec une date
<)

Voilà ce que je viens d'essayer et qui ne me parait pas si mal
finalement.

Je crée une fonction qui me renvoi une date fixe.

Je crée un trigger dans mes tables qui compare à la date renvoyée par la
fonction précédente.

Pour changer la date du verrou je n'ai plus qu'à recréer la fonction qui
renvoi la date fixe.

--
William Dodé - http://flibuste.net
Informaticien Indépendant

In response to

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Pascal Brognez 2009-02-09 08:28:49 Re: Fosdem
Previous Message Guillaume Lelarge 2009-02-08 21:50:20 Re: Fosdem