PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Преименуването на стойност на enum води до Тип връзка Не е намерена

Преименуването на стойност на enum се поддържа само от Postgres 10.

Както е документирано в ръководството трябва да използвате rename VALUE , а не rename attribute за преименуване на стойността на enum.

Enums стойностите също са низови константи, а не идентификатори. Следователно трябва да ги оградите в единични, а не в двойни кавички:

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

Ако се чудите защо получавате грешка „тип ... не съществува“ с грешен синтаксис:

Когато използвате опцията RENAME ATTRIBUTE това показва, че "обикновен" тип обект трябва да бъде променен, така че Postgres търси "истински" тип обект.

Но „enum тип“ не е „обектен тип“ и следователно Postgres се оплаква от „тип xyz не съществува“, а не от синтактична грешка.




  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 създава индекс при прехвърляне от низ към дата

  2. Postgresql:Експортиране на CSV с екранирани нови редове

  3. Класът не е намерен, зарежда JDBC org.postgresql.Driver

  4. java.lang.NoSuchFieldError:NONE в хибернация с Spring 3, maven, JPA, c3p0

  5. pg_upgrade в Windows не може да записва в лог файла pg_upgrade_internal.log