Guest User

Untitled

a guest
Jul 16th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.08 KB | None | 0 0
  1. ID_PROCESS PERIOD CUSTOMER STATUS
  2. ===========================================
  3. 0001234 201801 12300344 INVALID
  4. 0001236 201801 12300344 INVALID
  5. 0001246 201801 12300344 UNPAID
  6. 0001246 201801 12300344 UNPAID
  7. 0001278 201801 12300344 COMPLETED
  8.  
  9. create table test1(ID_PROCESS int , PERIOD int, CUSTOMER int, STATUS varchar2(20));
  10.  
  11.  
  12. create unique index idxu1_test1 on test1
  13. (case when STATUS ='COMPLETED' then PERIOD else null end,
  14. case when STATUS ='COMPLETED' then CUSTOMER else null end
  15. );
  16.  
  17.  
  18. insert into test1(ID_PROCESS ,PERIOD, CUSTOMER , STATUS )
  19. values (1,1,1, 'invalid'); -- ok
  20. insert into test1(ID_PROCESS ,PERIOD, CUSTOMER , STATUS )
  21. values (2,1,1, 'invalid'); -- ok
  22. insert into test1(ID_PROCESS ,PERIOD, CUSTOMER , STATUS )
  23. values (3,1,1, 'invalid'); -- ok
  24.  
  25.  
  26. insert into test1(ID_PROCESS ,PERIOD, CUSTOMER , STATUS )
  27. values (4,1,1, 'COMPLETED'); -- ok
  28. insert into test1(ID_PROCESS ,PERIOD, CUSTOMER , STATUS )
  29. values (5,1,1, 'COMPLETED'); -- ORA-00001: unique constraint violated
Add Comment
Please, Sign In to add comment