PDA

View Full Version : [SQL + POSTGRES] problema creazione trigger


Re_Kotc
02-07-2009, 17:41
ciao a tutti, premetto che sono un novellino dei DBMS e sto cercando di imparare, ho cercato di creare una semplice funzione di questo tipo:


CREATE FUNCTION checkdurata() RETURNS trigger AS '
BEGIN
if NEW.durata > 90 THEN
NEW.durata := 90;
END IF;
RETURN NEW;
END;
' LANGUAGE 'plpgsql';

per poi creare un trigger che la utilizzasse

CREATE TRIGGER conta AFTER INSERT OR UPDATE ON trasmette
FOR EACH ROW EXECUTE PROCEDURE checkdurata();

l'idea molto semplice è che per ogni nuovo inserimento se il valore dell'attributo durata è maggiore di 90 settalo a 90...eppure io continuo a inserire tutti i valori che voglio e questi restano tali..non dovrebbero essere automaticamente messi a 90?

grazie :)

RaouL_BennetH
02-07-2009, 22:58
Non me ne intendo di trigger e non so come funzionano, ma 'leggendo' noto che:

Nella creazione della funzione tu verifichi che:

SE il nuovo valore di durata è > di 90 settalo a 90

e poi richiami il trigger 'dopo' un inserimento o un update.

Allora, credo che se intendi verificare il valore di durata con 'new' quindi presumo 'prima' di inserirlo, tu debba fare un trigger prima di una insert o un update con 'before'.

Altrimenti, se vuoi aggiustare dopo aver inserito i dati, credo che il primo 'NEW.durata' non sia corretto.




Ammetto però che non so come funzioni un trigger :)

Re_Kotc
03-07-2009, 07:45
:D forse non conosci i trigger...ma sai ragionare di sicuro...hai ragione!!:D


thx!!! :):):):)