У меня есть таблица с типом enum
, и я создал функцию для добавления данных в эту таблицу. Я хочу, чтобы эта функция была щедрой в том, что нужно принять, поэтому я беру text
как тип перечисления и хочу его позже использовать.
Это перечисление:
CREATE TYPE public.enum_log_priority AS ENUM (
'critical','error','warning','notice','debug'
);
И это функция:
CREATE OR REPLACE FUNCTION public.log_write(
_message text,
_priority text
) RETURNS integer AS
$body$
BEGIN
_priority = lower(_priority);
INSERT INTO log (message, priority) VALUES (_message, _priority);
RETURN 0;
END
$body$
LANGUAGE 'plpgsql';
Я знаю, что это не работает:
ОШИБКА: столбец "priority" имеет тип enum_log_priority, но выражение имеет тип текста
но как я могу это сделать?