Да, для этой цели существует специальная таблица EXCLUDED
:
INSERT INTO tbl (id, data)
VALUES (1, '<data_string>')
ON CONFLICT (id) DO UPDATE SET data = <b>EXCLUDED.</b>data;
Как и , в инструкции объясняется :
Обратите внимание, что специальнаяТаблица excluded
используется для ссылки на значения, изначально предложенные для вставки:
Работает также для многострочных вставок:
INSERT INTO tbl (id, data)
VALUES (1, '<data_string1>')
, (2, '<data_string2>')
, (3, '<data_string3>')
ON CONFLICT (id) DO UPDATE
SET data = EXCLUDED.data;