Re: insert only unique values in to a table, ignore rest?

Поиск
Список
Период
Сортировка
От Jeremy Haile
Тема Re: insert only unique values in to a table, ignore rest?
Дата
Msg-id 1168294174.8573.283751515@webmail.messagingengine.com
обсуждение исходный текст
Ответ на Re: insert only unique values in to a table, ignore rest?  (Scott Marlowe <smarlowe@g2switchworks.com>)
Ответы Re: insert only unique values in to a table, ignore rest?  (George Nychis <gnychis@cmu.edu>)
Список pgsql-general
> Note that things will go faster if you do your initial data load using
> "copy from stdin" for the initial bulk data load.  individual inserts in
> postgresql are quite costly compared to mysql.  It's the transactional
> overhead.  by grouping them together you can make things much faster.
> copy from stdin does all the inserts in one big transaction.

You could do "copy from file" as well right?  (no performance difference
compared to "copy from stdin")  I do this all the time.

Also - maybe I misunderstand something, but why does PostgreSQL's
implementation prohibit it from ignoring insert errors during a copy?
If you added a unique constraint to the table before copying, PostgreSQL
would generate errors due to the unique constraint violation - so I
don't think any additional locking would be required for it to simply
say "If there is an error while copying in, ignore it and continue
inserting other rows"

PostgreSQL's copy command doesn't currently support this, so the temp
table followed by a distinct select is the way to go.  But I didn't
follow all of the talk about it requiring locking the table and being
inherently impossible for PostgreSQL to support.

I've wanted a similar feature.  I select rows into a table on a regular
basis.  I'd like to be able to overlap old values and have PostgreSQL
ignore failed inserts.  SQL Server offers a flag that allows you to
ignore inserts whose primary key already exists in the table.  The only
solution in PostgreSQL is to run a query to manually delete the
duplicate rows from a temp table before inserting - which takes much
more time.

В списке pgsql-general по дате отправления:

Предыдущее
От: Chris Browne
Дата:
Сообщение: Re: Autovacuum Improvements
Следующее
От: George Nychis
Дата:
Сообщение: Re: insert only unique values in to a table, ignore rest?