PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Zmiana nazwy wartości wyliczenia powoduje, że nie znaleziono relacji typu

Zmiana nazwy wartości wyliczenia jest obsługiwana tylko od Postgresa 10.

Zgodnie z dokumentacją w instrukcji musisz użyć rename VALUE , a nie rename attribute zmienić nazwę wartości wyliczenia.

Wartości wyliczenia są również stałymi ciągami, a nie identyfikatorami. Dlatego należy je ująć w apostrofy, a nie cudzysłowy:

ALTER TYPE public.enum_subscription_sub_frequency RENAME VALUE 'BI-WEEKLY' TO 'BI_WEEKLY';

Jeśli zastanawiasz się, dlaczego pojawia się błąd „typ ... nie istnieje” o niewłaściwej składni:

Gdy używasz opcji RENAME ATTRIBUTE oznacza to, że należy zmienić „zwykły” typ obiektu, więc Postgres szuka „prawdziwego” typu obiektu.

Ale „typ wyliczenia” nie jest „typem obiektu” i dlatego Postgres skarży się na „typ xyz nie istnieje”, a nie na błąd składni.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. postgresql - dodaj domyślną kolumnę logiczną do zestawu tabeli

  2. PGError:ERROR:agregacje niedozwolone w klauzuli WHERE w zapytaniu AR obiektu i jego obiektów has_many

  3. Jak połączyć się w sieć między obrazami Dockera w czasie kompilacji?

  4. jOOQ EXTRACT(EPOCH Z [pole]) obejście?

  5. postgres:pobierz n pierwszych wystąpień wartości w każdej grupie