Это сработало бы, если бы id
был первичным ключом по крайней мере * old_paragraphs * (или если бы он был уникальным для каждого идентификатора, найденного в * new_paragraph *)
Кроме этого, вы хотите использовать псевдонимыв on (id = id)
, чтобы оно читалось как on (a.id = b.id)
:
merge into new_paragraphs a
using (select * from old_paragraphs) b
on (a.id = b.id)
when matched then
update set a.paragraph = a.paragraph || b.paragraph;