Re: What is the good equivalent for ENUM ?

Поиск
Список
Период
Сортировка
От Dennis Gearon
Тема Re: What is the good equivalent for ENUM ?
Дата
Msg-id 3F560DBA.4060001@fireserve.net
обсуждение исходный текст
Ответ на Re: What is the good equivalent for ENUM ?  (Vivek Khera <khera@kcilink.com>)
Список pgsql-general
that's how I'd do it, since in reality, that's all an ENUM is, is a mini
foreign table internalized onto a column in another table.

Vivek Khera wrote:

>>>>>>"SD" == Shridhar Daithankar <shridhar_daithankar@persistent.co.in> writes:
>>>>>>
>>>>>>
>
>SD> On 3 Sep 2003 at 14:30, Bruno BAGUETTE wrote:
>
>
>>>The problem is that this MySQL database uses ENUM, do you see what can I
>>>do to migrate ENUM into PostgreSQL ?
>>>
>>>
>
>SD> varchar with check constraints. Add constraits to allow only
>SD> certain values of varchar string.
>
>I used to do this.  It turns out to be horribly inflexible when you
>need to alter the enum values since the constraints cannot easily be
>changed.
>
>What I do is create a short table for the enum like this:
>
>CREATE TABLE status_levels (
> status varchar(10) PRIMARY KEY
>) WITHOUT OIDS;
>INSERT INTO status_levels (status) VALUES ('active');
>INSERT INTO status_levels (status) VALUES ('overdue');
>INSERT INTO status_levels (status) VALUES ('suspended');
>INSERT INTO status_levels (status) VALUES ('terminated');
>
>then reference it via foreign key from the "enum" field:
>
>CREATE TABLE whatever (
> ...
>?status varchar(10) NOT NULL DEFAULT 'active' REFERENCES status_levels(status),
> ...
>);
>
>
>
>
>
>


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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Trunc in Postgres
Следующее
От: Dennis Gearon
Дата:
Сообщение: Re: Using oids