PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie behebt man FEHLER:Spalte c.relhasoids existiert nicht in Postgres?

Ich kann Ihren Fehler reproduzieren, wenn ich Postgres v.12 und einen älteren Client (v.11 oder früher) verwende:

[[email protected] /]# 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=# 

Dies liegt daran, dass Tabellen-OIDs in v. 12 nicht mehr als spezielle Spalten behandelt werden, und daher die relhasoids Spalte ist nicht mehr erforderlich. Bitte stellen Sie sicher, dass Sie Version 12 psql verwenden binär, sodass dieser Fehler nicht auftritt.

Möglicherweise verwenden Sie nicht unbedingt psql , daher lautet die allgemeinere Antwort hier, sicherzustellen, dass Sie einen kompatiblen Client verwenden.