Mega Code Archive

 
Categories / Oracle PLSQL Tutorial / Table
 

ORA-00001

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> 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 (RNTSOFT.JOB_UNIQUE_IN_TEAMID) violated 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> insert into emp(emp_id,teamid,job,status)values( 2, 10, 'a', 'ACTIVE' ); 1 row created. SQL> SQL> drop table emp; Table dropped. SQL>