SQLite
 sql >> डेटाबेस >  >> RDS >> SQLite

SQLite अद्वितीय बाधा

सारांश :इस ट्यूटोरियल में, आप सीखेंगे कि SQLite UNIQUE . का उपयोग कैसे करें यह सुनिश्चित करने के लिए बाधा है कि किसी स्तंभ या स्तंभों के समूह में सभी मान अद्वितीय हैं।

SQLite का परिचय UNIQUE बाधा

एक UNIQUE बाधा यह सुनिश्चित करती है कि किसी स्तंभ या स्तंभों के समूह के सभी मान एक दूसरे से भिन्न या अद्वितीय हों।

एक UNIQUE परिभाषित करने के लिए बाधा, आप UNIQUE . का उपयोग करते हैं एक या अधिक कॉलम के बाद कीवर्ड।

आप एक UNIQUE परिभाषित कर सकते हैं स्तंभ या तालिका स्तर पर बाधा। केवल तालिका स्तर पर, आप एक UNIQUE . परिभाषित कर सकते हैं एकाधिक स्तंभों में बाधा।

निम्नलिखित दिखाता है कि UNIQUE को कैसे परिभाषित किया जाए स्तंभ स्तर पर स्तंभ के लिए बाधा:

CREATE TABLE table_name(
    ...,
    column_name type UNIQUE,
    ...
);
Code language: SQL (Structured Query Language) (sql)

या टेबल स्तर पर:

CREATE TABLE table_name(
    ...,
    UNIQUE(column_name)
);
Code language: SQL (Structured Query Language) (sql)

निम्नलिखित दिखाता है कि UNIQUE को कैसे परिभाषित किया जाए एकाधिक स्तंभों के लिए बाधा:

CREATE TABLE table_name(
    ...,
    UNIQUE(column_name1,column_name2,...)
);
Code language: SQL (Structured Query Language) (sql)

एक बार UNIQUE बाधा को परिभाषित किया गया है, यदि आप कॉलम में पहले से मौजूद मान डालने या अपडेट करने का प्रयास करते हैं, तो SQLite एक त्रुटि जारी करेगा और ऑपरेशन को रोक देगा।

SQLite UNIQUE बाधा उदाहरण

आइए UNIQUE . का उपयोग करने के कुछ उदाहरण लेते हैं बाधा।

एक UNIQUE को परिभाषित करना एक कॉलम उदाहरण के लिए बाधा

निम्न कथन contacts . नामक एक नई तालिका बनाता है एक UNIQUE के साथ email . के लिए परिभाषित बाधा कॉलम:

CREATE TABLE contacts(
    contact_id INTEGER PRIMARY KEY,
    first_name TEXT,
    last_name TEXT,
    email TEXT NOT NULL UNIQUE
);
Code language: SQL (Structured Query Language) (sql)

निम्न उदाहरण contacts . में एक नई पंक्ति सम्मिलित करता है टेबल:

INSERT INTO contacts(first_name,last_name,email)
VALUES ('John','Doe','[email protected]');
Code language: SQL (Structured Query Language) (sql)

यदि आप उसी ईमेल के साथ एक नया संपर्क सम्मिलित करने का प्रयास करते हैं, तो आपको एक त्रुटि संदेश प्राप्त होगा:

INSERT INTO contacts(first_name,last_name,email)
VALUES ('Johnny','Doe','[email protected]');
Code language: SQL (Structured Query Language) (sql)

यहाँ त्रुटि संदेश है:

Error while executing SQL query on database 'chinook': UNIQUE constraint failed: contacts.email
Code language: SQL (Structured Query Language) (sql)

एक UNIQUE को परिभाषित करना एकाधिक कॉलम उदाहरण के लिए बाधा

निम्न कथन shapes बनाता है UNIQUE . के साथ तालिका background_color . के लिए परिभाषित बाधा और foreground_color कॉलम:

CREATE TABLE shapes(
    shape_id INTEGER PRIMARY KEY,
    background_color TEXT,
    foreground_color TEXT,
    UNIQUE(background_color,foreground_color)
);
Code language: SQL (Structured Query Language) (sql)

निम्न कथन shapes . में एक नई पंक्ति सम्मिलित करता है टेबल:

INSERT INTO shapes(background_color,foreground_color)
VALUES('red','green');
Code language: SQL (Structured Query Language) (sql)

निम्न कथन काम करता है क्योंकि background_color . दोनों में कोई दोहराव उल्लंघन नहीं है और foreground_color कॉलम:

INSERT INTO shapes(background_color,foreground_color)
VALUES('red','blue');
Code language: SQL (Structured Query Language) (sql)

हालांकि, निम्न कथन दोनों background_color . में डुप्लीकेट के कारण त्रुटि उत्पन्न करता है और foreground_color कॉलम:

INSERT INTO shapes(background_color,foreground_color)
VALUES('red','green');
Code language: SQL (Structured Query Language) (sql)

यहाँ त्रुटि है:

Error while executing SQL query on database 'chinook': `UNIQUE` constraint failed: shapes.background_color, shapes.foreground_color
Code language: SQL (Structured Query Language) (sql)

SQLite UNIQUE बाधा और शून्य

SQLite मानता है कि सभी NULL मान अलग हैं, इसलिए, UNIQUE . वाला एक कॉलम बाधा के कई NULL मान हो सकते हैं।

निम्नलिखित कथन lists नामक एक नई तालिका बनाता है जिसका email कॉलम में एक UNIQUE है बाधा:

CREATE TABLE lists(
    list_id INTEGER PRIMARY KEY,
    email TEXT UNIQUE
);
Code language: SQL (Structured Query Language) (sql)

निम्न कथन email में एकाधिक NULL मान सम्मिलित करता है lists . का कॉलम टेबल:

INSERT INTO lists(email)
VALUES(NULL),(NULL);
Code language: SQL (Structured Query Language) (sql)

आइए lists से डेटा क्वेरी करें टेबल:

SELECT * FROM lists;
Code language: SQL (Structured Query Language) (sql)

यहाँ आउटपुट है:

जैसा कि आप देख सकते हैं, भले ही ईमेल कॉलम में एक UNIQUE हो बाधा, यह कई NULL मान स्वीकार कर सकता है।

इस ट्यूटोरियल में, आपने सीखा है कि SQLite UNIQUE . का उपयोग कैसे किया जाता है यह सुनिश्चित करने के लिए बाधा है कि किसी स्तंभ या स्तंभों के समूह में सभी मान अद्वितीय हैं।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डेटाबेस को रीड/राइट मोड में खोलने में सक्षम नहीं है

  2. SQLite में विदेशी कुंजी की सूची लौटाएं

  3. SQLite में समग्र कुंजी स्वत:उत्पन्न करें

  4. वे मान खोजें जिनमें SQLite में संख्याएँ नहीं हैं

  5. कैसे दो Json प्रतिक्रिया प्राप्त करने के लिए Json वस्तु और सरणी