我有一个具有枚举类型的表,并且我创建了一个函数来向该表添加数据.我希望该函数在接受的方面慷慨,所以我采用一个文本作为枚举类型,并希望稍后再发表.
这是枚举:
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: column “priority” is of type enum_log_priority but expression is of type text
但我该怎么办?
插入时使用下面的语法
'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