关系的 PostgreSQL 错误缓存查找失败 - 是什么原因造成的,为什么?

lef*_*ode 7 postgresql

我有一个在尝试创建临时表时出错的查询。查询是:

创建临时表 temp_table_t (LIKE original_table INCLUDING INDEXES)

返回的错误是:

postgres7 错误:[-1:错误:关系 14026125 的缓存查找失败] 在 EXECUTE("CREATE TEMPORARY TABLE temp_table_t (LIKE original_table INCLUDING INDEXES)")

我在 PostgreSQL 论坛上找到了两个主题,但不幸的是,它们没有解释太多:

http://archives.postgresql.org/pgsql-performance/2010-04/msg00026.php

http://archives.postgresql.org/pgsql-performance/2010-04/msg00028.php

这个查询在其他服务器上运行得很好,它只在我们的一台服务器上失败。关于导致错误的原因以及如何修复它,您是否可以给我任何见解?我一开始以为是创建了一个与现有临时表同名的临时表名的结果。我每次都更新我的代码以创建一个随机命名的临时表,但这也不起作用。

小智 9

我正在删除一个模式,我遇到了这个错误“关系 xxxx 的查找失败”。还有一张桌子的名字。我正在删除的模式中的一些表似乎处于一种奇怪的状态。最后我们做了这第三步。

  1. 我们得到表的 C.oid。

    select c.oid
    from pg_class  c
    join pg_namespace n on n.oid=c.relnamespace
    where c.relname = 'MY_TABLE_NAME'
        and n.nspname='MY_SCHEMA_NAME';
    
    Run Code Online (Sandbox Code Playgroud)
  2. 下一个:

    delete from pg_class where oid = MY_OID;
    delete from pg_depend where objid = MY_OID;
    delete from pg_constraint where conrelid = MY_OID;
    
    Run Code Online (Sandbox Code Playgroud)
  3. 最后:

    drop schema MY_SCHEMA_NAME cascade
    
    Run Code Online (Sandbox Code Playgroud)

然后另一个表出现了另一个类似的错误,我们重复了步骤 1 到 3,直到我们删除了架构。