Thread

  1. unique()ness not always maintained

    Frank Cusack <fcusack@iconnet.net> — 1999-11-11T09:00:21Z

    Solaris 2.6/sparc; postgres 6.5.1
    
    dns=> create table test (zone int4, net cidr, unique(zone, net));
    NOTICE:  CREATE TABLE/UNIQUE will create implicit index 'test_zone_key' for table 'test'
    CREATE
    dns=> insert into test (zone, net) values (1, '1.2.3/24');
    INSERT 21750 1
    dns=> insert into test (zone, net) values (1, '2.3.4/24');
    INSERT 21751 1
    dns=> insert into test (zone, net) values (1, '1.2.3/24');
    INSERT 21752 1
    dns=> insert into test (zone, net) values (1, '2.3.4/24');
    ERROR:  Cannot insert a duplicate key into a unique index
    dns=> select * from test;
    zone|net     
    ----+--------
       1|1.2.3/24
       1|2.3.4/24
       1|1.2.3/24
    (3 rows)
    
    
    Once a unique error is reported, uniqueness seems to be maintained.
    Also, if you enter 4 values, then try a duplicate, it all works.
    
    The threshold seems to be 3.
    
    ~f