Ciao a tutti, qualcuno usa Postgres sa darmi un esempio di come si crea un trigger per il controllo di integrità di una tabella? Devo portare sotto PG un db Firebird, dove ho una tabella, AssenzeDipendenti, fatta grosso modo così:: CREATE TABLE AssenzeDipendenti ( IDDipendente INTEGER PRIMARY KEY, DataInizioAssenza Date, DataFineAssenza Date ... ) sulla quale è attivo questo constraint:: ALTER TABLE AssenzeDipendenti ADD CONSTRAINT chk_ad_assenze_sovrapposte CHECK (NOT EXISTS (SELECT iddipendente FROM AssenzeDipendenti ad WHERE ad.IDDipendente = NEW.iddipendente AND ad.DataInizioAssenza <= NEW.DataInizioAssenza AND ad.DataFineAssenza >= NEW.DataInizioAssenza)); Ora, scoperto che con PG non posso usare delle subselect nel CHECK, ho cercato di capire come farlo coi trigger; ho creato questa funzione:: create function chk_ad_assenze_sovrapposte (integer_t, timestamp_t) returns trigger as ' begin if (exists (select iddipendente from AssenzeDipendenti ad where ad.IDDipendente = $1 and ad.DataInizioAssenza <= $2 and ad.DataFineAssenza >= $2 raise exception ''Assenze sovrapposte''; end if; end; ' language plpgsql; Ma il codice seguente genera un errore per il fatto che "la funzione xxx non esiste":: create trigger trg_ad_assenze_sovrapposte before insert or update on AssenzeDipendenti for each row execute procedure chk_ad_assenze_sovrapposte (IDDipendente, DataInizioAssenza); anche se posso vedere la funzione nel database! Qualche illuminante suggerimento? ciao, grazie! -- nickname: Lele Gaifax | Quando vivrò di quello che ho pensato ieri real: Emanuele Gaifas | comincerò ad aver paura di chi mi copia. email: lele@xxxxxxxxxx | -- Fortunato Depero, 1929. -- Per iscriversi (o disiscriversi), basta spedire un messaggio con OGGETTO "subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx