Ashley Moran <ashley(dot)moran(at)codeweavers(dot)net> writes:
> BEGIN WORK;
> DELETE FROM X; COPY X ...; REINDEX TABLE X;
> DELETE FROM Y; COPY Y ...; REINDEX TABLE Y;
> DELETE FROM Z; COPY Z ...; REINDEX TABLE Z;
> COMMIT;
Why don't you use TRUNCATE? Why do you think you need REINDEX at all?
If you do need it, you'd be best off to drop the indexes, truncate,
copy, re-create the indexes. See
http://www.postgresql.org/docs/8.1/static/populate.html#POPULATE-RM-INDEXES
regards, tom lane