Ниже приведена одна или несколько проверок ошибок - Testflight

Нет простой команды для этого.

Самый правильный подход - использовать функцию, такую ​​как функция из docs .

Другое решение (хотя это и не так безопасно) заключается в том, чтобы выполнить обновление с возвратом, проверить, какие строки были обновлениями, и вставить остальные из них

Что-то по строкам:

update table
set column = x.column
from (values (1,'aa'),(2,'bb'),(3,'cc')) as x (id, column)
where table.id = x.id
returning id;

: 2 было возвращено:

insert into table (id, column) values (1, 'aa'), (3, 'cc');

Конечно, он рано или поздно выйдет из строя (в параллельной среде), так как здесь есть явное состояние гонки, но обычно оно будет работать.

Вот еще более длинная и более полная статья по теме .

0
задан Nandhini 25 March 2019 в 09:38
поделиться