型を含むテーブルがあり、enum
そのテーブルにデータを追加する関数を作成しました。私はその関数が何を受け入れるかを寛大にしたいのでtext
、列挙型として a を取り、後でキャストしたいと考えています。
これは列挙型です:
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';
私はこれがうまくいかないことを知っています:
エラー: 列 "priority" は enum_log_priority 型ですが、式は text 型です
しかし、どうすればこれを行うことができますか?