अद्वितीय कुंजी क्या है
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';
इसे टेबल लेवल पर भी किया जा सकता है
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';
हम कस्टम बाधा भी प्रदान कर सकते हैं
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';
हम नीचे दिए गए आरेख के साथ अद्वितीय कुंजी का प्रतिनिधित्व कर सकते हैं
हमारे पास कई कॉलम हो सकते हैं यानी समग्र अद्वितीय कुंजी भी और इसे केवल तालिका स्तर पर परिभाषित किया गया है
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';
हम कस्टम बाधा नाम भी दे सकते हैं
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';
तालिका बदलें अद्वितीय कुंजी जोड़ें
टेबल बनाने के बाद हम Unique key भी जोड़ सकते हैं। आइए उसका उदाहरण देखें
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';
प्राथमिक कुंजी और अद्वितीय कुंजी दोनों
ऑरैकल टेबल पर हमारे पास प्राइमरी की और यूनीक की दोनों हो सकते हैं। इसे प्रदर्शित करने वाला उदाहरण यहां दिया गया है
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';
अद्वितीय कुंजी से जुड़े कॉलम को कैसे खोजें
हम शब्दकोश दृश्य 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
अद्वितीय कुंजी बाधा को सक्षम और अक्षम कैसे करें
हम इसे अल्टर टेबल कमांड के साथ कर सकते हैं। हम या तो कॉलम नाम या बाधा नाम प्रदान कर सकते हैं
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.
अद्वितीय बाधा कैसे छोड़ें
हम इसे अल्टर टेबल कमांड के साथ कर सकते हैं। हम या तो कॉलम नाम या बाधा नाम प्रदान कर सकते हैं
SQL> alter table customer_detail drop UNIQUE(CUSTOMER_ID, NAME); Table altered. OR SQL> alter table customer_detail drop constraint CUST_UK; Table altered.
आशा है कि आपको Oracle में Unique key पर यह विवरण पसंद आया होगा। हमने प्रदर्शनात्मक उद्देश्य के लिए भी पर्याप्त उदाहरण दिए हैं। कृपया इस पर प्रतिक्रिया दें
यह भी पढ़ता है
Oracle डेटाबेस व्यवस्थापन ट्यूटोरियल
ओरेकल में प्राथमिक कुंजी कैसे जोड़ें :प्राथमिक कुंजी तालिका में पंक्ति की विशिष्ट रूप से पहचान करती है। ओरेकल में प्राथमिक कुंजी कैसे जोड़ें, प्राथमिक कुंजी कैसे छोड़ें, समग्र कुंजी कैसे बनाएं
https://asktom.oracle.com/pls/asktom/f%3Fp%3D100:11:0:::::P11_QUESTION_ID:554135210346689891