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

--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

Reply via email to