Oracle Database Certified Associate (OCA) 1 minute read

Constraint Unique diterapkan pada column tertentu dalam sebuah tabel, dengan tujuan untuk memvalidasi data yang kita entry tidak boleh sama dengan data yang telah tersedia di table pada kolom tersebut. Contoh pengguanya seperti berikut:

Jadi dengan ddl untuk membuat table diatas, maka kita tidak boleh entry data pada kolom product_no dengan nilai yang sama atau sudah ada di table tersebut. Contoh dengan perintah entry yang salah seperti berikut:

insert into test_constraint_unique (product_no, name, price)
values (1, 'Apple Macbook Pro 13" (2019)', 25000);

Bila di execute maka akan terjadi error:

insert into test_constraint_unique (product_no, name, price)
*
ERROR at line 1:
ORA-00001: unique constraint (HR.SYS_C007465) violated

Unique Constraint multiple columns

Selain itu juga Constraint unique dapat di terapkan di beberapa kolom sekaligus, contohnya seperti berikut:

Sekarang coba execute query berikut:

insert into test_constraint_multi_unique(product_code, product_type, product_name, price, release_date)
values (2, 'MBP13', 'Macbook Pro 13" (2019)', 24000, date '2018-03-01');

Maka berikut hasilnya:

insert into test_constraint_multi_unique(product_code, product_type, product_name, price, release_date)
*
ERROR at line 1:
ORA-00001: unique constraint (HR.UQ_PRODUCT_ID) violated

Add unique constraint dengan Alter Table

Dan yang terakhir kita juga bisa menambahkan unique constraint dengan alter table, tpi jika udah ada datanya kita harus handle dulu sendiri jadi make sure ja gak ada yang sama untuk ngechecknya kita bisa pake sql group by contohnya seperti berikut:

SQL> select product_code, product_type, count(*) duplicate_count
from test_constraint_multi_unique
group by product_code, product_type
having count(*) >= 2;

no rows selected

Jika hasilnya aman seperti diatas, maka kita bisa tambahkan alter tabelnya seperti berikut: