Ashley Moran <ashley.moran@xxxxxxxxxxxxxxx> 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