Re: EVAL and SET equivalents in PostgreSQL

Поиск
Список
Период
Сортировка
От Stephan Szabo
Тема Re: EVAL and SET equivalents in PostgreSQL
Дата
Msg-id 20020703232043.F14152-100000@megazone23.bigpanda.com
обсуждение исходный текст
Ответ на Re: EVAL and SET equivalents in PostgreSQL  (Alvaro Herrera <alvherre@atentus.com>)
Список pgsql-general
On Wed, 3 Jul 2002, Alvaro Herrera wrote:

> Bruce Momjian dijo:
>
> > Sure, use CHECK constraints on the column.  That is the ANSI standard
> > way.
> >
> >              gender    CHAR(1)      CHECK (gender IN ('M','F')),
>
> That's the solution for the ENUM MySQL datatype, but the SET datatype
> allows one to have multiple values in the column (or that's what I
> understood in the original message).
>
> In PostgreSQL, you could use an array to store multiple values.  I don't
> know if one could set up a CHECK constraint so that every element in a
> varchar array is checked against a predefined set.  Maybe it can be done
> at insertion time using a trigger?

Should work find if you've got a function that does the check.  Using
contrib/array you could do the ugly check (col *='M' or col *='F')
which at least seems to work on current sources. You could do something
with regexs or build another function that checks a list of values.
However, that doesn't prevent you from having duplicates (I don't know how
MySQL's set works).

Or a details table and options table with the appropriate foreign keys.





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

Предыдущее
От: Justin Clift
Дата:
Сообщение: Another win for PostgreSQL & a good basis for a case study
Следующее
От: Manfred Koizar
Дата:
Сообщение: Re: One source of constant annoyance identified