|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Aug 2003
Città: verona
Messaggi: 541
|
[SQL + POSTGRES] problema creazione trigger
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:
Codice:
CREATE FUNCTION checkdurata() RETURNS trigger AS ' BEGIN if NEW.durata > 90 THEN NEW.durata := 90; END IF; RETURN NEW; END; ' LANGUAGE 'plpgsql'; Codice:
CREATE TRIGGER conta AFTER INSERT OR UPDATE ON trasmette FOR EACH ROW EXECUTE PROCEDURE checkdurata(); grazie
__________________
CASE: Cooler Master Stacker 831 Silver MOBO: Asus Maximus Formula CPU: Intel Q6600@2,4ghz RAM: 2x 1GB Corsair XMS2 pc2-8500@1066mhz + 2x2GB Corsair XMS2 pc2-8500@1066mhzVGA: ATI Sapphire RADEON 5830 1GB GDDR5 HD: 2 x WD Caviar SE16 500GB Raid 0 |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
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
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Aug 2003
Città: verona
Messaggi: 541
|
thx!!!
__________________
CASE: Cooler Master Stacker 831 Silver MOBO: Asus Maximus Formula CPU: Intel Q6600@2,4ghz RAM: 2x 1GB Corsair XMS2 pc2-8500@1066mhz + 2x2GB Corsair XMS2 pc2-8500@1066mhzVGA: ATI Sapphire RADEON 5830 1GB GDDR5 HD: 2 x WD Caviar SE16 500GB Raid 0 |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:49.



















