sql >> Database >  >> RDS >> PostgreSQL

Het hernoemen van een enumwaarde resulteert in Type Relatie Niet gevonden

Het hernoemen van een waarde van een enum wordt alleen ondersteund vanaf Postgres 10.

Zoals gedocumenteerd in de handleiding je moet rename VALUE . gebruiken , niet rename attribute om de waarde van een enum te hernoemen.

Enums-waarden zijn ook tekenreeksconstanten, geen ID's. Daarom moet u ze tussen enkele aanhalingstekens plaatsen, geen dubbele aanhalingstekens:

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

Als je je afvraagt ​​waarom je een "type ... bestaat niet"-foutmelding krijgt met de verkeerde syntaxis:

Wanneer u de optie RENAME ATTRIBUTE . gebruikt dit geeft aan dat een "normaal" objecttype moet worden gewijzigd, dus Postgres zoekt naar een "echt" objecttype.

Maar een "enum-type" is geen "objecttype" en daarom klaagt Postgres over "type xyz bestaat niet", in plaats van een syntaxisfout.




  1. Database-ontwerp:het rekeningsaldo berekenen

  2. MySQL, moet rijen selecteren met de meest voorkomende waarden in een andere tabel

  3. Hoe kan ik alleen de eerste afzonderlijke overeenkomst uit een veld in MySQL selecteren?

  4. is het mogelijk om ajax, jQuery-pagina met cron te gebruiken?