我有一个带有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';
我知道这行不通:
但是我该怎么办呢?
最佳答案
插入时使用如下语法
'critical'::enum_log_priority
也请看一些链接
http://www.postgresql.org/docs/9.1/static/datatype-enum.html
Inserting into custom SQL types with prepared statements in java
java enum and postgresql enum