Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
pg_转储postgresql 9.5上缺少目录错误_Postgresql - Fatal编程技术网

pg_转储postgresql 9.5上缺少目录错误

pg_转储postgresql 9.5上缺少目录错误,postgresql,Postgresql,我不能在postgresql 9.5中对数据库进行哑操作。问题只存在于1个数据库中,当我们从视图中选择数据时。它显示目录缺少128个属性。有什么解决办法吗?表中的选择、插入和删除操作没有问题。我无法更新或删除视图。请帮助我删除视图以解决问题。您的数据库已损坏 尝试找出受影响的表: SELECT 183772::regclass; 你能描述一下这张桌子吗?它应该有多少列 如果pg_类目录中的属性数与pg_属性中的实际属性数不一致,将抛出错误消息。这两个查询应返回相同的值,但在您的情况下,第一个查

我不能在postgresql 9.5中对数据库进行哑操作。问题只存在于1个数据库中,当我们从视图中选择数据时。它显示目录缺少128个属性。有什么解决办法吗?表中的选择、插入和删除操作没有问题。我无法更新或删除视图。请帮助我删除视图以解决问题。

您的数据库已损坏

尝试找出受影响的表:

SELECT 183772::regclass;
你能描述一下这张桌子吗?它应该有多少列

如果
pg_类
目录中的属性数与
pg_属性
中的实际属性数不一致,将抛出错误消息。这两个查询应返回相同的值,但在您的情况下,第一个查询将比第二个查询返回128:

SELECT relnatts FROM pg_class
   WHERE oid = 183772;

SELECT count(*) FROM pg_attribute
   WHERE attrelid = 183772 AND attnum > 0;
我会从备份中恢复

调查正确的列数

因为差值正好是128,可能是RAM中的a。你有?如果不是的话,也许现在你有动力去买一些

检查你的硬件,特别是你的内存是否有故障

获取最早的备份,看看情况如何。

如果实际上只有一个位翻转,并且
pg_class
中的数字关闭了128,您可以更新表183772的
relnats
,您的问题就会得到解决。

请提供更多信息,如您运行的命令、您得到的错误消息、您看到的输出等。在运行select query for view时,我收到此错误SQL错误:错误:relid 183772的目录缺少128个属性第1行:选择*从视图中\u获取\u退款我运行此查询时,得到的结果是一个视图名称。是视图已损坏,我无法删除返回128属性缺失相同错误的视图。我已使用更多信息编辑了答案。这有助于你理解问题吗?视图有多少属性?感谢您的支持和时间。第一个查询返回223,第二个返回95。我用一些解决问题的方法扩展了答案。