我有一个带有enum
类型的表,我创建了一个函数来向该表添加数据。我希望该函数能够慷慨地接受什么,所以我将 atext
作为枚举类型并希望稍后再转换它。
这是枚举:
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';
我知道这不起作用:
错误:列“优先级”是 enum_log_priority 类型,但表达式是文本类型
但我该怎么做呢?