Documentazione di PostgreSQL 9.0 > Il linguaggio SQL > Funzioni e Operatori > Funzioni trigger
PrecedenteFunzioni di amministrazione di sistemaType ConversionSuccessivo

9.25. Funzioni trigger

Currently PostgreSQL™ provides one built in trigger function, suppress_redundant_updates_trigger, which will prevent any update that does not actually change the data in the row from taking place, in contrast to the normal behavior which always performs the update regardless of whether or not the data has changed. (This normal behavior makes updates run faster, since no checking is required, and is also useful in certain cases).

Idealmente, si dovrebbero evitare aggiornamenti che di fatto non cambiano i dati nel record. Aggiornamenti ridondanti posso costare tempo non necessario, specialmente se ci sono molti indici da cambiare, e spazio in righe morte che eventualmente debba essere svuotato. Comunque, rilevare quelle situazioni nel codice di un client non è sempre facile, o possibile, e scrivere espressioni per rilevarli può essere portatore di errori. Un'alternativa è di usare suppress_redundant_updates_trigger, che salterà aggiornamenti che non modificano i dati. Si dovrebbe usarla comunque con cura. Il trigger usa poco e insignificante tempo per ogni record, così se la maggior parte dei record interessati dall'aggiornamento sono di fatto cambiati, usare questo trigger di fatto renderà più lento l'aggiornamento.

The suppress_redundant_updates_trigger function can be added to a table like this:

CREATE TRIGGER z_min_update 
BEFORE UPDATE ON tablename
FOR EACH ROW EXECUTE PROCEDURE suppress_redundant_updates_trigger();

In most cases, you would want to fire this trigger last for each row. Bearing in mind that triggers fire in name order, you would then choose a trigger name that comes after the name of any other trigger you might have on the table.

For more information about creating triggers, see CREATE TRIGGER(7).

Documentazione di PostgreSQL 9.0 > Il linguaggio SQL > Funzioni e Operatori > Funzioni trigger
PrecedenteFunzioni di amministrazione di sistemaType ConversionSuccessivo