我有一张表格里面有一个枚举
类型,我创建了一个添加数据到该表的函数。我希望这个函数在接收输入时能够更加宽容,因此我把文本
作为枚举类型的输入,并想稍后再进行转换。
这是枚举:
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';
我知道这行代码不能正常工作:
ERROR: 列 "priority" 的类型是 enum_log_priority,但表达式的类型是 text
但我应该怎么做呢?