Apa itu Kunci Unik
Kunci unik di Oracle Secara unik mengidentifikasi setiap baris dalam database. Ini pada dasarnya memaksakan keunikan pada kolom yang ditentukan
Hal-hal penting
- Bisa ada lebih dari satu kunci Unik per tabel
- Dapat didefinisikan pada satu atau beberapa kolom
- Kolom yang terdiri dari kunci Unik mungkin tidak dapat dibatalkan
Cara membuat Kunci Unik
Pembuatan Tabel
Itu bisa dilakukan di Level Kolom dengan perintah create table di oracle
SQL> CREATE TABLE DEPT_MASTER ( dept_nr NUMBER UNIQUE, dept_name varchar2(100) NOT NULL, dept_status NUMBER(1,0) NOT NULL, created_at date ); Table created. SQL> column CONSTRAINT_NAME format a20 SQL> column TABLE_NAME format a20 SQL> column INDEX_NAME format a20 SQL> select CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME, INDEX_NAME from user_Constraints where TABLE_NAME='DEPT_MASTER';
Itu bisa dilakukan di tingkat tabel juga
SQL> CREATE TABLE DEPT_MASTER ( dept_nr NUMBER , dept_name varchar2(100) NOT NULL, dept_status NUMBER(1,0) NOT NULL, created_at date, Unique(dept_nr) ); Table created. SQL> select CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME, INDEX_NAME from user_Constraints where TABLE_NAME='DEPT_MASTER';
Kami juga dapat menyediakan batasan khusus
SQL> CREATE TABLE DEPT_MASTER ( dept_nr NUMBER , dept_name varchar2(100) NOT NULL, dept_status NUMBER(1,0) NOT NULL, created_at date, constraint DEPT_UK Unique(dept_nr) ); Table created. SQL> select CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME, INDEX_NAME from user_Constraints where TABLE_NAME='DEPT_MASTER';
Kami dapat mewakili kunci Unik dengan diagram di bawah ini
Kami dapat memiliki beberapa kolom yaitu kunci unik komposit juga dan itu didefinisikan hanya pada tingkat tabel
CREATE TABLE CUSTOMER_DETAIL ( CUSTOMER_ID NUMBER(6,0), NAME VARCHAR (20) NOT NULL, AGE NUMBER(6,0) NOT NULL, ADDRESS VARCHAR2(25), SALARY NUMBER(6,0), UNIQUE(CUSTOMER_ID, NAME) ); Table Created. SQL> select CONSTRAINT_NAME,CONSTRAINT_TYPE, TABLE_NAME,INDEX_NAME from user_Constraints where TABLE_NAME='CUSTOMER_DETAIL';
Kami juga dapat memberikan nama batasan khusus
SQL> CREATE TABLE CUSTOMER_DETAIL( CUSTOMER_ID NUMBER(6,0), NAME VARCHAR (20) NOT NULL, AGE NUMBER(6,0) NOT NULL, ADDRESS VARCHAR2(25), SALARY NUMBER(6,0), constraint CUSTOMER_UK UNIQUE(CUSTOMER_ID, NAME) ); Table created. SQL> select CONSTRAINT_NAME,CONSTRAINT_TYPE, TABLE_NAME,INDEX_NAME from user_Constraints where TABLE_NAME='CUSTOMER_DETAIL';
Alter Tabel tambahkan kunci unik
Kita juga dapat menambahkan kunci Unik setelah pembuatan tabel. Mari kita lihat contohnya
SQL> CREATE TABLE CUSTOMER_DETAIL( CUSTOMER_ID NUMBER(6,0), NAME VARCHAR (20) NOT NULL, AGE NUMBER(6,0) NOT NULL, ADDRESS VARCHAR2(25), SALARY NUMBER(6,0) ); Table created. SQL> select CONSTRAINT_NAME,CONSTRAINT_TYPE, TABLE_NAME,INDEX_NAME from user_Constraints where TABLE_NAME='CUSTOMER_DETAIL';
SQL> alter table customer_detail add constraint customer_uk UNIQUE(CUSTOMER_ID, NAME); Table altered. SQL> select CONSTRAINT_NAME,CONSTRAINT_TYPE,TABLE_NAME,INDEX_NAME from user_Constraints where TABLE_NAME='CUSTOMER_DETAIL';
Kunci Utama dan Kunci Unik Keduanya
Kita dapat memiliki primary key dan Unique key pada tabel oracle. Berikut adalah contoh yang mendemonstrasikannya
SQL> CREATE TABLE DEPT_MASTER ( dept_nr NUMBER PRIMARY KEY, dept_name varchar2(100) UNIQUE, dept_status NUMBER(1,0) NOT NULL, created_at date ); Table created. SQL> select CONSTRAINT_NAME,CONSTRAINT_TYPE, TABLE_NAME,INDEX_NAME from user_Constraints where TABLE_NAME='DEPT_MASTER';
Cara menemukan kolom yang terkait dengan kunci Unik
Kita dapat menemukan kolom yang terkait dengan Primary key atau unique key dari tampilan kamus User_cons_columns
SQL> CREATE TABLE DEPT_MASTER ( dept_nr NUMBER PRIMARY KEY, dept_name varchar2(100) UNIQUE, dept_status NUMBER(1,0) NOT NULL, created_at date ); Table created. SQL> select CONSTRAINT_NAME, CONSTRAINT_TYPE,TABLE_NAME,INDEX_NAME from user_Constraints where TABLE_NAME='DEPT_MASTER';
SQL> SELECT Constraint_name, Table_name, Column_name FROM User_cons_columns where CONSTRAINT_NAME ='SYS_C00540915'; CONSTRAINT_NAME TABLE_NAME COLUMN_NAME -------------------- ----------- ------------ SYS_C00540915 DEPT_MASTER DEPT_NAME SQL> SELECT Constraint_name, Table_name, Column_name FROM User_cons_columns where CONSTRAINT_NAME ='SYS_C00540914'; CONSTRAINT_NAME TABLE_NAME COLUMN_NAME ------------- --------- --------- SYS_C00540914 DEPT_MASTER DEPT_NR SQL> SELECT Constraint_name, Table_name, Column_name FROM User_cons_columns where CONSTRAINT_NAME ='SYS_C00540918'; CONSTRAINT_NAME TABLE_NAME COLUMN_NAME ------------- ---------- ------------ SYS_C00540918 CUSTOMER_DETAIL CUSTOMER_ID SYS_C00540918 CUSTOMER_DETAIL NAME
Cara mengaktifkan &menonaktifkan batasan kunci Unik
Kita dapat melakukan ini dengan perintah ubah tabel. Kami dapat memberikan nama kolom atau nama kendala
SQL> alter table customer_detail disable UNIQUE(CUSTOMER_ID, NAME); Table altered. SQL> alter table customer_detail disable constraint CUST_UK; Table altered. SQL> alter table customer_detail enable UNIQUE(CUSTOMER_ID, NAME); Table altered. SQL> alter table customer_detail enable constraint CUST_UK; Table altered.
Cara menghilangkan batasan Unik
Kita dapat melakukan ini dengan perintah ubah tabel. Kami dapat memberikan nama kolom atau nama kendala
SQL> alter table customer_detail drop UNIQUE(CUSTOMER_ID, NAME); Table altered. OR SQL> alter table customer_detail drop constraint CUST_UK; Table altered.
Semoga Anda menyukai detail ini tentang kunci Unik di Oracle. Kami telah memberikan cukup banyak contoh untuk tujuan demonstratif juga. Tolong berikan umpan baliknya
Juga Dibaca
Tutorial Administrasi database Oracle
Cara Menambahkan kunci utama di oracle :kunci utama secara unik mengidentifikasi baris dalam tabel. Cara Menambahkan kunci utama di oracle, cara melepaskan kunci utama, cara membuat kunci komposit
https://asktom.Oracle.com/pls/asktom/f%3Fp%3D100:11:0::::P11_QUESTION_ID:5541352100346689891