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

SQLite नहीं पूर्ण बाधा

सारांश :इस ट्यूटोरियल में, आप सीखेंगे कि SQLite का उपयोग कैसे करें NOT NULL यह सुनिश्चित करने में बाधा है कि कॉलम में मान NULL नहीं हैं ।

SQLite का परिचय NOT NULL बाधा

जब आप कोई तालिका बनाते हैं, तो आप निर्दिष्ट कर सकते हैं कि कोई स्तंभ स्वीकार करता है या नहींNULL मान या नहीं। डिफ़ॉल्ट रूप से, तालिका के सभी कॉलम NULL स्वीकार करते हैं मूल्यों को छोड़कर आप स्पष्ट रूप से NOT NULL का उपयोग करते हैं बाधाएं।

NOT NULL को परिभाषित करने के लिए एक कॉलम के लिए बाधा, आप निम्न सिंटैक्स का उपयोग करते हैं:

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

अन्य बाधाओं जैसे PRIMARY KEY . के विपरीत और CHECK , आप केवल NOT NULL . को परिभाषित कर सकते हैं स्तंभ स्तर पर बाधाएँ, तालिका स्तर पर नहीं।

SQL मानक के आधार पर, PRIMARY KEY हमेशा NOT NULL का अर्थ होना चाहिए . हालांकि, SQLite NULL की अनुमति देता है PRIMARY KEY में मान कॉलम सिवाय इसके कि एक कॉलम INTEGER PRIMARY KEY है कॉलम या टेबल एक WITHOUT ROWID है टेबल या कॉलम को NOT NULL के रूप में परिभाषित किया गया है स्तंभ।

यह कुछ शुरुआती संस्करणों में एक बग के कारण है। यदि यह बग SQL मानक के अनुरूप तय किया गया है, तो यह लीगेसी सिस्टम को तोड़ सकता है। इसलिए, NULL . को अनुमति देने का निर्णय लिया गया है PRIMARY KEY में मान स्तंभ।

एक बार NOT NULL बाधा एक कॉलम से जुड़ी होती है, कॉलम मान को NULL . पर सेट करने का कोई भी प्रयास जैसे डालने या अपडेट करने से बाधा उल्लंघन होगा।

SQLite NOT NULL बाधा उदाहरण

निम्न उदाहरण suppliers . नामक एक नई तालिका बनाता है :

CREATE TABLE suppliers(
    supplier_id INTEGER PRIMARY KEY,
    name TEXT NOT NULL
);
Code language: SQL (Structured Query Language) (sql)

इस उदाहरण में, supplier_id PRIMARY KEY है suppliers . का कॉलम टेबल। क्योंकि इस कॉलम को INTEGER PRIMARY KEY . के रूप में घोषित किया गया है , यह स्वीकार नहीं करेगा NULL मान।

name कॉलम को NOT NULL . के साथ भी घोषित किया गया है बाधा है, इसलिए यह केवल गैर-शून्य मान स्वीकार करेगा।

निम्नलिखित कथन NULL को सम्मिलित करने का प्रयास करता है name . में suppliers . का कॉलम टेबल:

INSERT INTO suppliers(name)
VALUES(NULL);
Code language: SQL (Structured Query Language) (sql)

NOT NULL के कारण कथन विफल हो जाता है बाधा उल्लंघन। यहाँ त्रुटि संदेश है:

SQL Error [19]: [SQLITE_CONSTRAINT]  Abort due to constraint violation (NOT NULL constraint failed: suppliers.name)Code language: CSS (css)

इस ट्यूटोरियल में, आपने सीखा है कि SQLite NOT NULL का उपयोग कैसे किया जाता है कॉलम में मान सुनिश्चित करने के लिए बाधा NULL नहीं है।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JSON फ़ंक्शन अब SQLite में डिफ़ॉल्ट रूप से सक्षम हैं

  2. SQLiteException WHERE +KEY_Date+='+date+' का उपयोग कर

  3. SQLite JSON_REMOVE ()

  4. SQLite में एक विदेशी कुंजी बनाएँ

  5. कैसे sqlite में खाली पंक्तियों की विशिष्ट संख्या जोड़ने के लिए?