SQL> create table t1(id1 char(2),id2 char(2),id3 char(2)); Table created. SQL> desc t1 Name Null? Type ----------------------------------------- -------- ---------------------------- ID1 CHAR(2) ID2 CHAR(2) ID3 CHAR(2) SQL> insert into t1 values('a',null,'a'); 1 row created. SQL> commit; Commit complete. SQL> select * from t1; ID ID ID -- -- -- a a SQL> alter table t1 add constraint PK_EMP primary key (id1,id2,id3); 2 add constraint PK_EMP primary key (id1,id2,id3) * ERROR at line 2: ORA-01449: column contains NULL values; cannot alter to NOT NULL SQL> create unique index t1_idx1 on t1(id1,id2,id3); Index created. SQL> insert into t1 values('a',null,'a'); insert into t1 values('a',null,'a') * ERROR at line 1: ORA-00001: unique constraint (SYS.T1_IDX1) violated