dba wrote:
>
> I wanted to create index 0f 3 numeric array. But it is allowing to insert
> more than 4 elements
>
> CREATE TABLE abs(no int[3]);
> CREATE TABLE
>
> zivah=# INSERT INTO abs VALUES('{1,3,34,343,4342342,342}');
> INSERT 0 1
>
> I need a solution to store an elements exactly 3. More than 3 should not be
> allowed.
If you treat simple arrays, you may use "CHECK" as following example...
=# CREATE TABLE abs(no int[3], CHECK (array_upper(no, 1) < 3));
CREATE TABLE
=# INSERT INTO abs VALUES ('{1,2}');
INSERT 0 1
=# INSERT INTO abs VALUES ('{1,2,3}');
ERROR: 23514: new row for relation "abs" violates check constraint "abs_no_check"
LOCATION: ExecConstraints, execMain.c:2049
--
NTT OSS Center
Tatsuhito Kasahara