Обсуждение: Indexes

Поиск
Список
Период
Сортировка

Indexes

От
Laura Castro
Дата:
  I'm trying to perform a massive load on a postgreSQL database from ODBC,
but I've found that if the table contains a 'PRIMARY KEY' constraint, the
sql-insert sentences from my program fail. I've also noticed that after
creating the table, the ODBC driver (unixODBC) warnings me this way:

  NOTICE:  CREATE TABLE/PRIMARY KEY will create implicit index for table

  so I think if I could `deactivate' the index before doing the massive
load it could possibly work, but I can't find the way of deactivating
indexes looking at the documentation. Can this be done? If not, any idea
about another suitable solution?

  Creating the PRIMARY KEY constraint after the massive load won't work,
because postgreSQL 7.1.3 doesn't implement the ALTER TABLE ... ADD
CONSTRAINT sentence with this kind of constraint.

  Thank you very much in advance.


    Laura Castro


Re: Indexes

От
Hiroshi Inoue
Дата:
Laura Castro wrote:
>
>   I'm trying to perform a massive load on a postgreSQL database
> from ODBC, but I've found that if the table contains a 'PRIMARY
> KEY' constraint, the sql-insert sentences from my program fail.
> I've also noticed that after creating the table, the ODBC driver
> (unixODBC) warnings me this way:
>
>   NOTICE:  CREATE TABLE/PRIMARY KEY will create implicit index for table
>
>   so I think if I could `deactivate' the index before doing the massive
> load it could possibly work, but I can't find the way of deactivating
> indexes looking at the documentation. Can this be done?

Unfortunately no.

> If not, any idea
> about another suitable solution?

You can drop the index before doing the massive load and
can create a unique index with the same name after it.
The only difference is that pg_index.inidisprimary is
set to true or not.

regards,
Hiroshi Inoue
    http://w2422.nsk.ne.jp/~inoue/