Update неизвестности

CE

Новичок
Update неизвестности

Вобщем, проблема банальна. Можно ответить на нее и(или) стереть этот топик.

Задача:
Необходимо апдейтить много строк. Быстро. PostgreSQL, PHP 4.3...

Проблема:
Неизвестно, существует ли конкретная строка для апдейта в таблице

Вопрос:
Как можно обойтись одним апдейтом без риска отсутствия строки? Ессно в противном случае идет инсерт.

Не подходит для решения:
1) Можно сделать доп.проверку типа Селект
2) Можно принудительно предварительно убить запись, а потом инсерт

Подскажите выход!

-~{}~ 25.05.05 15:26:

Короче, лоханулся.. Replace.. Можно делить топик

-~{}~ 25.05.05 15:37:

Короче опять лоханулся... Никакого реплейса там нет =(
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
начинаем транзакцию
ставим savepoint
делаем insert
в случае ошибки --- rollback to savepoint, update
commit
 

neko

tеam neko
момент проблемный действительно
вот один из официальных воркэраундов, без сейвпоинтс
http://developer.postgresql.org/docs/postgres/plpgsql-control-structures.html#PLPGSQL-UPSERT-EXAMPLE

-~{}~ 26.05.05 07:15:

> в случае ошибки --- rollback to savepoint, update
я вот этот момент не понял, нельзя ли чуть подробней
ролбек понятно, а куда там апдейт?
 
Сверху