RE: syntax error with alter type

Поиск
Список
Период
Сортировка
От Kevin Brannen
Тема RE: syntax error with alter type
Дата
Msg-id SN1PR19MB025577985E4F8D2D64B3155CA4AB0@SN1PR19MB0255.namprd19.prod.outlook.com
обсуждение исходный текст
Ответ на Re: syntax error with alter type  (Adrian Klaver <adrian.klaver@aklaver.com>)
Ответы Re: syntax error with alter type
Список pgsql-general
On 12/7/18 3:17 PM, Kevin Brannen wrote:
> I'm running Pg 9.6.5 if it matters...
>
> I'm trying to drop a value from an ENUM (type) and it seems like I'm
> following the fine manual yet I still get an error. For example:
>
> nms=# create type alphabet as enum ('a', 'b', 'c', 'd');
>
> CREATE TYPE
>
> nms=# alter type alphabet drop attribute if exists 'c';
>
> ERROR:  42601: syntax error at or near "'c'"
>
> LINE 1: alter type alphabet drop attribute if exists 'c';
>
>                                                       ^
>
> LOCATION:  scanner_yyerror, scan.l:1086
>
> What am I doing wrong? The goal is to get rid of the 'c' value from
> the enum. Yes, you can assume I've already removed of all the 'c'
> values in the table where it's used.

https://www.postgresql.org/docs/10/datatype-enum.html

"Although enum types are primarily intended for static sets of values, there is support for adding new values to an
existingenum type, and for renaming values (see ALTER TYPE). Existing values cannot be removed from an enum type, nor
canthe sort ordering of such values be changed, short of dropping and re-creating the enum type. 


>
> Or does that statement not do what I think it does and I have to do
> the "create new type, change the table to use the new type, drop old
> type, rename new type to old type" routine?

Adrian,

Thanks, I hadn't seen that "existing values cannot be removed from an enum type" since I was looking on the ALTER TYPE
page.

So, can you (or anyone) help me understand what "alter type <type> drop attribute" is meant to do? I don't see
"attribute"on the page you reference. 

Thanks,
Kevin
This e-mail transmission, and any documents, files or previous e-mail messages attached to it, may contain confidential
information.If you are not the intended recipient, or a person responsible for delivering it to the intended recipient,
youare hereby notified that any disclosure, distribution, review, copy or use of any of the information contained in or
attachedto this message is STRICTLY PROHIBITED. If you have received this transmission in error, please immediately
notifyus by reply e-mail, and destroy the original transmission and its attachments without reading them or saving them
todisk. Thank you. 


В списке pgsql-general по дате отправления:

Предыдущее
От: Adrian Klaver
Дата:
Сообщение: Re: syntax error with alter type
Следующее
От: Tom Lane
Дата:
Сообщение: Re: syntax error with alter type