On Fri, 9 Aug 2002, Tom Lane wrote:
> Gavin Sherry <swm@linuxworld.com.au> writes:
> > template1=# create temp table a (a int) on commit drop;
> > ERROR: You must be inside a transaction to use ON COMMIT
>
> Surely that's only for ON COMMIT DROP, if you intend to offer the
> others?
I should have provided details of this in the email. SQL99 details the
baviour as follows:
If TEMPORARY is specified and ON COMMIT is omitted, then ON COMMIT
DELETE ROWS is implicit
This might give users a bit of a surprise so the effective behaviour is ON
COMMIT PRESERVE ROWS.
As for your question (and, perhaps, SQL99) I don't seen how it makes any
sense to specify ON COMMIT outside of a transaction block.
>
> regards, tom lane
>
Gavin