Enrico Sirola <enrico(dot)sirola(at)gmail(dot)com> writes:
> However, I'm facing a problem I'm not able to solve with postgresql:
> usually updating or deleting time-varying data means to temporary
> violate a constraint in a transaction but ensuring that at the end of
> the transaction the table(s) is(are) in a consistent state, but this
> seems impossible to do because trigger constraints are not deferrable.
Use CREATE CONSTRAINT TRIGGER:
http://developer.postgresql.org/pgdocs/postgres/sql-createconstraint.html
(This statement has been there all along, but was marked as deprecated
in pre-8.3 releases, for now-forgotten reasons.)
regards, tom lane