Re: What is the good equivalent for ENUM ?

Поиск
Список
Период
Сортировка
От Vivek Khera
Тема Re: What is the good equivalent for ENUM ?
Дата
Msg-id x77k4q9bad.fsf@yertle.int.kciLink.com
обсуждение исходный текст
Ответ на Re: What is the good equivalent for ENUM ?  ("Shridhar Daithankar" <shridhar_daithankar@persistent.co.in>)
Ответы Re: What is the good equivalent for ENUM ?  (Dennis Gearon <gearond@fireserve.net>)
Re: What is the good equivalent for ENUM ?  (Ron Johnson <ron.l.johnson@cox.net>)
Список pgsql-general
>>>>> "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),
 ...
);




--
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Vivek Khera, Ph.D.                Khera Communications, Inc.
Internet: khera@kciLink.com       Rockville, MD       +1-240-453-8497
AIM: vivekkhera Y!: vivek_khera   http://www.khera.org/~vivek/

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

Предыдущее
От: Jeff Eckermann
Дата:
Сообщение: Re: Trunc in Postgres
Следующее
От: Adrian Phillips
Дата:
Сообщение: Re: Restarting, ownership, and permissions