John,
> I'm optimising my data load by dropping indexes.
>
> My question is, what do I do with the indexes created by postgres for
> primary keys ?
>
> Is it OK to drop them ?
No.
> What will happen to the constraint checking ?
It won't happen, assuming that Postgres allows the DROP INDEX statement
at all.
> How do I create them again afterwards, so that they are used
> correctly for constraint checking ?
I'm not sure that it's possible to add a primary key to an existing
populated table.
I'd reccommend instead dropping all other indexes but the primary key.
It's just not a good idea. How much is this slowing down the data
load? Can you do a comparison test on a keyed vs. keyless table?
FYI, in 7.4 or 8.0 we will have DEFERRABLE UNIQUE constraints, which
means that it may be possible for you to hold the PK checking until the
data load is finished, adding some speed to the process.
-Josh Berkus