我有一个带有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

07-24 09:49
查看更多