我正在尝试在Postgresql中 CREATE TABLE 命令。
创建表后,如果我打入 TABLE 表名,则可以使用。
但是我打了 \ d 表名,下面一直出现错误。ERROR: column c.relhasoids does not existLINE 1: ...riggers, c.relrowsecurity, c.relforcerowsecurity, c.relhasoi...
我尝试使用 DROP DATABASE 表名重新创建数据库,然后再次重新创建表。但这没有用。
任何建议,将不胜感激!谢谢。
最佳答案
如果我使用的是Postgres v.12和较旧的客户端(v.11或更早版本),则可以重现您的错误:
[root@def /]# psql -h 172.17.0.3
psql (11.5, server 12.0)
WARNING: psql major version 11, server major version 12.
Some psql features might not work.
Type "help" for help.
postgres=# create table mytable (id int, name text);
CREATE TABLE
postgres=# table mytable;
id | name
----+------
(0 rows)
postgres=# \d mytable;
ERROR: column c.relhasoids does not exist
LINE 1: ...riggers, c.relrowsecurity, c.relforcerowsecurity, c.relhasoi...
^
postgres=#
这是因为在第12版中,table OIDs are no longer treated as special columns,因此不再需要
relhasoids
列。请确保您使用的是v。12 psql
二进制文件,这样就不会遇到此错误。您不一定要使用
psql
,所以这里更通用的答案是确保您使用的是兼容的客户端。关于postgresql - 如何在Postgres中修复 “ERROR: column c.relhasoids does not exist”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58461178/