> Vincenzo Romano <vincenzo.romano@xxxxxxxxxxx> wrote: > >> I'd like to "replace" a full table F with an empty one E. >> In order to do this I see only one way: >> >> ALTER TABLE F RENAME TO T; >> ALTER TABLE E RENAME TO F; >> ALTER TABLE T RENAME TO E; -- optional >> >> This implies there's a moment when the full table doesn't exist. >> Would a transaction enclosure ensure that the table F will be >> always available to all clients? > > Yes. What you show is safe. What has a race condition is dropping > the old table before all transactions which started with it have > completed. If you're going to drop the old table, be sure to wait > long enough after the COMMIT for things to "settle". Would you please elaborate more on the "wait[ing] long enough after the COMMIT" ? -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general