Good way to insert/update when you're not sure of duplicates?

Поиск
Список
Период
Сортировка
От Curtis Stanford
Тема Good way to insert/update when you're not sure of duplicates?
Дата
Msg-id 200309241923.09562.curtis@stanfordcomputing.com
обсуждение исходный текст
Ответы Re: Good way to insert/update when you're not sure of duplicates?  (Richard Huxton <dev@archonet.com>)
Список pgsql-general
I'm in a situation where I need to load an ASCII file into a database. No
sweat so far right? The records are indexed by date and I have a unique index
on date. The ASCII can overlap, meaning it can contain duplicate dates that
have been loaded before.

I started out with this ingenious idea. Just try to insert the record. If I
get an error about duplicate keys, do an update and switch to update mode. If
I'm updating and get zero rows updated, switch back to insert. Works fine,
except this whole thing is in a transaction and any errors abort the
transaction and I can't commit it. So, I decided I'd have to try to update
every single record and, if zero rows were updated, do the insert. This takes
a looooong time. Many hours for just 86000 records or so.

Is there a standard way to do this. I can't imagine I'm the only guy that need
to do this kind of thing.

I'm using Java with the postgresql JDBC driver if that matters.

Thanks for any suggestions.

Curtis Stanford
curtis@stanfordcomputing.com


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

Предыдущее
От: Palle Girgensohn
Дата:
Сообщение: performance hit when joining with a view?
Следующее
От: "Ramkrishna Chakrabarty"
Дата:
Сообщение: MPI interface