दस्तावेज़ीकरण से:
<ब्लॉकक्वॉट>CREATE TABLE AS का उपयोग करके बनाई गई तालिका में कोई प्राथमिक कुंजी नहीं है और किसी भी प्रकार की कोई बाधा नहीं है। प्रत्येक कॉलम का डिफ़ॉल्ट मान NULL होता है।
आपको UNIQUE
जोड़ने की जरूरत नहीं है एक कॉलम पर बाधा जिसमें PRIMARY KEY
. है बाधा।
स्पष्टीकरण:
एक अद्वितीय बाधा प्राथमिक कुंजी बाधा के समान है, सिवाय इसके कि एक तालिका में कई अद्वितीय बाधाएं हो सकती हैं।
इसके बजाय NOT NULL
add जोड़ें .यही कारण है:
SQL मानक के अनुसार, प्राथमिक कुंजी का अर्थ हमेशा NOTNULL होना चाहिए। दुर्भाग्य से, कुछ शुरुआती संस्करणों में बग के कारण, SQLite में ऐसा नहीं है। जब तक कॉलम एक इंटीजर प्राथमिक कुंजी नहीं है या तालिका तालिका के बिना तालिका है या कॉलम को न्यूल घोषित नहीं किया गया है, SQLite प्राथमिक कुंजी कॉलम में नल मानों की अनुमति देता है। SQLite को मानक के अनुरूप बनाया जा सकता है, लेकिन ऐसा करने से लीगेसी एप्लिकेशन टूट सकते हैं। इसलिए, यह केवल इस तथ्य का दस्तावेजीकरण करने का निर्णय लिया गया है कि SQLite अधिकांश प्राथमिक कुंजी कॉलम में NULLs की अनुमति देता है।
मैं इस कॉलम परिभाषा का उपयोग करने की सलाह देता हूं:
CREATE TABLE conversations (
conversation_id INTEGER PRIMARY KEY NOT NULL AUTOINCREMENT,
...
}