демо: дБ <> скрипка
SELECT
regexp_replace(xml, match, match || '<entry>secondentry</entry>')
FROM (
SELECT
xml,
(regexp_matches(xml,'^<map>(.*)</map>$'))[1] as match
FROM (
SELECT '<map><entry>test</entry></map>' as xml
) s
) s
Используя свой путь с regexp_replace
:
regexp_matches
дает полное содержание <map>
regexp_replace
заменяет все содержимое <map>
его содержимым И новым.
Редактировать : Все ОБНОВЛЕНИЕ будет выглядеть так:
UPDATE postgrestable
SET html =
(
SELECT
regexp_replace(xml, match, match || '<entry>secondentry</entry>')
FROM (
SELECT
xml,
(regexp_matches(xml,'^<map>(.*)</map>$'))[1] as match
FROM (
SELECT '<map><entry>test</entry></map>' as xml
) s
) s
);