ORA-00001: unique constraint (JAVA2S.JOB_UNIQUE_IN_TEAMID) violated : Unique « Table « Oracle PL/SQL Tutorial






SQL> create table emp
  2  (emp_ID number primary key,
  3   teamid number,
  4   job varchar2(100),
  5   status varchar2(20) check (status in ('ACTIVE', 'INACTIVE'))
  6  );

Table created.

SQL>
SQL>
SQL> create UNIQUE index job_unique_in_teamid on emp
  2  ( case when status = 'ACTIVE' then teamid else null end,
  3    case when status = 'ACTIVE' then job    else null end
  4  )
  5  /

Index created.

SQL>
SQL> insert into emp(emp_id,teamid,job,status)values( 1, 10, 'a', 'ACTIVE' );

1 row created.

SQL>
SQL> insert into emp(emp_id,teamid,job,status)values( 2, 10, 'a', 'ACTIVE' );
insert into emp(emp_id,teamid,job,status)values( 2, 10, 'a', 'ACTIVE' )
*
ERROR at line 1:
ORA-00001: unique constraint (JAVA2S.JOB_UNIQUE_IN_TEAMID) violated


SQL>
SQL>
SQL> update emp
  2     set status = 'INACTIVE'
  3    where emp_id = 1
  4      and teamid = 10
  5      and status = 'ACTIVE';

1 row updated.

SQL>
SQL>
SQL> insert into emp(emp_id,teamid,job,status)values( 2, 10, 'a', 'ACTIVE' );

1 row created.

SQL>
SQL> drop table emp;

Table dropped.

SQL>








6.12.Unique
6.12.1.Adding a UNIQUE Constraint
6.12.2.Add unique constraint across more than one columns
6.12.3.Add unique constraints for combined columns
6.12.4.Add unique constaint to new added column
6.12.5.Violate an unique constraints
6.12.6.Add unique constraints
6.12.7.ORA-00001: unique constraint (JAVA2S.JOB_UNIQUE_IN_TEAMID) violated