Próbuję utworzyć polecenie UTWÓRZ TABELĘ w Postgresql. Po utworzeniu tabeli, jeśli wprowadzę nazwę tabeli TABLE , to działa.
Ale wciskam \ d nazwę tabeli , poniżej pojawia się błąd.
ERROR: column c.relhasoids does not exist
LINE 1: ...riggers, c.relrowsecurity, c.relforcerowsecurity, c.relhasoi...
Próbowałem DROP DATABASE nazwa tabeli ponownie utworzyła bazę danych i ponownie utworzyłem tabelę kilka razy. Ale to nie zadziałało.
Wszelkie sugestie będą mile widziane! Dziękuję Ci.
postgresql
Nao
źródło
źródło
Odpowiedzi:
Jestem w stanie odtworzyć błąd, jeśli korzystam z Postgres v.12 i starszego klienta (v.11 lub wcześniejszego):
Wynika to z faktu, że w w. 12 identyfikatory OID tabeli nie są już traktowane jako specjalne kolumny , a zatem
relhasoids
kolumna nie jest już potrzebna. Upewnij się, że używasz plikupsql
binarnego v. 12, aby nie napotkać tego błędu.Niekoniecznie używasz
psql
, więc bardziej ogólną odpowiedzią jest upewnienie się, że używasz kompatybilnego klienta.źródło
Dla każdego, kto używa Postgres jako kontener Docker :
Zamiast uruchamiać psql z hosta, uruchom go z wnętrza kontenera, np
Obraz Postgres zawsze jest dostarczany z odpowiednią - a więc zawsze aktualizowaną - wersją psql, więc nie musisz się martwić o zainstalowanie poprawnej wersji na komputerze hosta.
źródło
Miałem ten problem dzisiaj, nie mogłem kontynuować pracy z tego powodu, co dziwne, kod aplikacji działa dobrze.
Później okazało się, że ten problem występuje tylko wtedy, gdy korzystam z klienta OmniDb, którego używam do łączenia się z bazą danych.
Zmieniłem klienta na domyślny pgAdmin 4, który jest dostarczany z instalacją Postgres i problem już nie występuje pgAdmin 4. Link: https://www.pgadmin.org/download/pgadmin-4-windows/
Możliwe, że klient OmniDb może być starszy, ale nie ma czasu, aby go rozwiązać, używając na razie pgAdmin 4.
Mam nadzieję, że to pomaga.
źródło
Też miałem dzisiaj ten sam problem. W moim przypadku problem został rozwiązany, gdy usunąłem wersję 12 i zainstalowałem wersję 11. Wydaje się, że wersja 12 ma pewne funkcje, które należy utworzyć wzdłuż innych kolumn.
źródło
psql
z instalacji Postgres 11 do łączenia się z Postgres 12 - powinieneś był użyćpsql
Postgres 12Miałem ten sam problem. Ale znalazłem rozwiązanie, pobierając najnowszą wersję 14.10.2019. Kliknij link: https://postbird.paxa.kuber.host/2019_10_14.06_42-master-7a9e949
Mam nadzieję, że to pomoże
źródło