Hi,
>> postgres=# update t1 set c1 = c1 +1;
> This controls whether the constraint can be deferred. A constraint that is not deferrable will be checked immediately after every command.
>
My understanding would have been, that "update t1 set c1=c1+1;" is ONE command, so even in the NOT DEFERRABLE case the check would occur only after both values were changed and as such not find any violation of the constraint.
claudio
--
Claudio Nieder . mailto:claudio(dot)nieder(at)inodes(dot)ch . http://inodes.ch/
iNodes AG . Loogartenstrasse 14 . CH-8048 Zürich . +41 43 960 0066