Re: CONSTRAINT on ARRAY ELEMENTS

From: Dmitriy Igrishin <dmitigr(at)gmail(dot)com>
To: Nikolaos Ikonomopoulos <ikonomn(at)hotmail(dot)com>
Cc: pgsql-docs(at)postgresql(dot)org
Subject: Re: CONSTRAINT on ARRAY ELEMENTS
Date: 2012-11-04 09:54:41
Message-ID: CAAfz9KMYyOX=5bneYu5DJJNNWWTkAMZb3i0tVbUW-oKkYRM82w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-docs

Hey Nikolaos,

2012/11/3 Nikolaos Ikonomopoulos <ikonomn(at)hotmail(dot)com>

>
> CREATE TABLE employ_presence
> (
> p_id character(6) not null,
> p_month character(3) NOT NULL,
> *statuscode* integer array[7],
> CONSTRAINT unq_employ_presence UNIQUE (p_id, p_month),
> CONSTRAINT chk_employ_month CHECK (p_month = ANY (ARRAY['Jan'::bpchar,
> 'Feb'::bpchar, 'Mar'::bpchar, 'Apr'::bpchar, 'May'::bpchar, 'Jun'::bpchar,
> 'Jul'::bpchar, 'Aug'::bpchar, 'Sep'::bpchar, 'Oct'::bpchar, 'Nov'::bpchar,
> 'Dec'::bpchar]))
> );
>
>
>
> How can add a CONSTRAINT on *statuscode* array elements to accept values
> between 0 to 5
>
> 0 = Employ present
> 1 = Employ Patient
> 2 = day off
> 3 = Regular vacation
> 4 = external job assignment
> 5 = external job assignment abroad
> 6 to 9 for future use
>
> Thanks.
>

I recommend you to create the table "status" and create
foreign key constraint in the table "employ_presence"
instead. This will do exactly what are you want.

--
// Dmitriy.

In response to

Browse pgsql-docs by date

  From Date Subject
Next Message Jeff Davis 2012-11-04 17:04:00 Re: CONSTRAINT on ARRAY ELEMENTS
Previous Message Nikolaos Ikonomopoulos 2012-11-03 09:43:06 CONSTRAINT on ARRAY ELEMENTS