Чтобы применить некоторые ограничения, наши разработчики используют пользовательский тип для столбца типа / фактора.
Пользовательский тип определен как таковой и включает как старое, так и новое значение:
create type custom_type as enum ('Value1', 'Value2', 'Value3', 'OldValue', 'NewValue');
Я пытаюсь обновить некоторые значения в таблице следующим образом:
UPDATE table SET column = replace(column, 'OldValue'::custom_type, 'NewValue'::custom_type);
Однако я получаю следующую ошибку:
[2019-04-11 16:37:42] [42883] ERROR: function replace(column, custom_type, custom_type) does not exist
[2019-04-11 16:37:42] Hint: No function matches the given name and argument types. You might need to add explicit type casts.
Я предполагаю, что для этого потребуется определить пользовательскую функцию «заменить», чтобы обрабатывать типы, или есть способ, которым я могу справиться с этим, просто приведя.
Для справки это PostgreSQL 11.2