小编Roo*_*lem的帖子

Postgres drop type XX000“缓存查找类型失败”

我目前正在开发一个带有大量客户端、表和函数的 PostgreSQL 9.2.x 数据库。我们不断地部署代码,有时甚至有必要因为这种部署而删除一个类型或一个函数。

例子:

1.首先创建所需函数的脚本

CREATE TYPE tmp._myEnum AS ENUM ('OLD', 'NEW', 'BOTH'); 

CREATE OR REPLACE FUNCTION tmp._get_status()
RETURNS tmp._myEnum AS
$BODY$
BEGIN
    RETURN 'OLD'::tmp._myEnum;
END;
$BODY$
LANGUAGE plpgsql VOLATILE SECURITY DEFINER COST 10;


CREATE OR REPLACE FUNCTION tmp._my_testfunction()
RETURNS VOID AS
$BODY$
BEGIN
    CASE tmp._get_status()
        WHEN 'OLD'::tmp._myEnum THEN 
            RAISE INFO 'myEnum is OLD';
        WHEN 'NEW'::tmp._myEnum THEN 
            RAISE INFO 'myEnum is NEW';
        WHEN 'BOTH'::tmp._myEnum THEN 
            RAISE INFO 'myEnum is BOTH';
        ELSE
            RAISE INFO 'myEnum has an unexpected value';
    END …
Run Code Online (Sandbox Code Playgroud)

postgresql

6
推荐指数
1
解决办法
1万
查看次数

标签 统计

postgresql ×1