Обновление нескольких строк одновременно, имеющих разные значения для каждой строки - PullRequest
0 голосов
/ 18 июля 2011

У меня есть один мастер-стол.его первичный ключ используется в качестве внешнего ключа в других таблицах.Я не могу изменить определение других таблиц, так как у него нет «каскада обновления», и я хочу изменить значение первичного ключа, чтобы другие таблицы я обновлял ... в настоящее время я написал plpgsql, но, какиметь большой объем данных для обработки, как-то это снижает производительность.Может кто-нибудь помочь мне, как обновить несколько таблиц в одном запросе, или обновить несколько строк, конечно, с различными значениями?

1 Ответ

0 голосов
/ 18 июля 2011

Вот один из вариантов обновления нескольких строк в одном операторе:

update mytable set
mycolumn = (case myid when 1 then 'a' when 2 then 'b' ... end)
where myid in (1, 2, ...);
...