首页 > 解决方案 > 在 Postgresql 中,由于“找不到 attrdef NNNNNN 的元组”而无法删除表

问题描述

看来我对名为contact_history 的表有疑问。我将尝试限制我分享的内容,因为某些表格和列是特定于我们的产品的,但一般问题不应该是。由于安装更改该表的软件包时出现问题,我试图删除 contact_history 并重新创建它。当我试图放下桌子时,我得到了以下信息。

DB=# drop table contact_history;
ERROR:  could not find tuple for attrdef 43853414

谷歌并没有帮助我弄清楚太多。我唯一能找到的是有人建议检查 pg_attrdef 中的那个 oid,结果什么都没有。

DB=# select * from pg_attrdef where oid = '43853414';
adrelid | adnum | adbin | adsrc
---------+-------+-------+-------
(0 rows) 

有什么办法可以找出这个 oid 的真正来源并解决这个问题?对于它的价值,这就是该表的 pg_class 中的内容

DB=#  select * from pg_class where oid = '43836447';
-[ RECORD 1 ]--+------------------------------------------------------------------------
relname        | contact_history
relnamespace   | 2200
reltype        | 43836449
reloftype      | 0
relowner       | 16384
relam          | 0
relfilenode    | 108127031
reltablespace  | 0
relpages       | 0
reltuples      | 0
reltoastrelid  | 43836450
reltoastidxid  | 0
relhasindex    | t
relisshared    | f
relpersistence | p
relkind        | r
relnatts       | 76
relchecks      | 0
relhasoids     | f
relhaspkey     | t
relhasrules    | f
relhastriggers | t
relhassubclass | t
relcreatetime  | 1598300361
relfrozenxid   | 143447314
relacl         | OMITTED 
reloptions     | 

关于如何前进的任何想法?

标签: postgresql-10

解决方案


推荐阅读