Функция escape для регулярного выражения или шаблонов LIKE

Чтобы не читать всю проблему, мой основной вопрос:
Есть ли в PostgreSQL функция для экранирования символов регулярного выражения в строке?

Я исследовал документацию, но не смог найти такую ​​функцию.

Вот полная проблема:

В базе данных PostgreSQL у меня есть столбец с уникальными именами. У меня также есть процесс, который периодически вставляет имена в это поле, и для предотвращения дублирования, если ему нужно ввести имя, которое уже существует, он добавляет пробел и круглые скобки со счетчиком до конца.

т.е. Имя, Имя (1), Имя (2), Имя (3) и т. Д.

В нынешнем виде,

WHERE a.r1_name ~* regex_escape(var_name) || E' \\(\\d+\\)'

Приветствуются любые предложения, в том числе возможная переработка моего решения для дублирования имен.

9
задан Erwin Brandstetter 29 March 2019 в 21:42
поделиться