Ho un problema con un trigger che dovrei realizzare in relazione a più tabelle.
Nello specifico ho una relazione che identifica un evento, una che identifica una location ed una evento_situato_location che mette in relazione gli specifici eventi con la location alla quale vengono associati.

evento(tipo_evento,descrizione,partecipanti,organizzatore)
location(id,proprietario,citta,indirizzo,costo,capienza,descr izione)
evento_situato_location(tipo_evento,descrizione_evento,location)

ora, quello che io devo controllare è che non ci siano eventi con un numero di partecipanti superiore alla capienza delle location alle quali vengono assegnati.
Io ho pensato a questo trigger


create function controlla_capienza_partecipanti() returns trigger as '

begin
if ((select count(*)
from evento_situato_location esl, evento e, "location" l
where esl.tipo_evento=e.tipo_evento AND esl.descrizione_evento=e.descrizione AND esl."location"=l.id AND e.partecipanti>l.capienza) > 0) then
raise exception ''Troppi cristiani'';
return null;
end if;

end;

'language plpgsql;

create trigger controlla_capienza_partecipanti
after insert on evento_situato_location
for each row
execute procedure controlla_capienza_partecipanti();
ma non funziona. Potreste darmi qualche dritta?