如果我使用的是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版中,表OID不再被视为特殊列,因此relhasoids
不再需要该列。请确保您使用的是v。12 psql
二进制文件,这样就不会遇到此错误。
您可能不一定使用psql
,所以这里更通用的答案是确保您使用的是兼容的客户端。