Re: Array values and foreign keys

Поиск
Список
Период
Сортировка
От Daniel Savard
Тема Re: Array values and foreign keys
Дата
Msg-id 1098906301.20209.6.camel@dirac.cids.ca
обсуждение исходный текст
Ответ на Re: Array values and foreign keys  (Pierre-Frédéric Caillaud<lists@boutiquenumerique.com>)
Список pgsql-general
Le mer 27/10/2004 à 11:59, Pierre-Frédéric Caillaud a écrit :
>
>
>     You can't express it directly with a CHECK constraint but you can do this
> :
>
>     - add CHECK( test_array( yourcolumn )) in your table definition
>     - create function test_array which takes an array and looks if all its
> elements are in your table T2, I do something like comparing the length of
> the array to SELECT count(1) FROM T2 WHERE key IN array
>     You can do it other ways but you'll have to use a function.
>
>

Fine. I got it right after fiddling a little bit. The function is
something like:

CREATE FUNCTION test_array (smallint[]) RETURNS bool AS '
   select case when count(1) = array_upper($1,1) then true
               else false
          end from t2 where cle = any($1);
' LANGUAGE SQL;

It compares the length of the array to the number of elements actually
found in the reference table.

--

=======================================
Daniel Savard

=======================================



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

Предыдущее
От: Steven Klassen
Дата:
Сообщение: Re: QMail
Следующее
От: Thomas Hallgren
Дата:
Сообщение: Re: Reasoning behind process instead of thread based