मैं एक SQLite तालिका है (SQLite संस्करण 3.7.3) जहां nulls प्राथमिक कुंजी स्तंभ में डाला undesirably ऑटो वृद्धि की जाती किया जा रहा है:autoincrementing पूर्णांक प्राथमिक कुंजी को रोकने?
sqlite> CREATE TABLE foo(bar INTEGER NOT NULL PRIMARY KEY);
sqlite> INSERT INTO foo(bar) VALUES(NULL);
sqlite> SELECT * FROM foo;
1
sqlite docs में, यह पता चलता है कि स्तंभ के लिए AUTOINCREMENT
कीवर्ड जोड़ने इस व्यवहार बनाना चाहिए, लेकिन वहाँ में किसी कीवर्ड ऑटो incrementing रोकने होने के लिए प्रकट नहीं होता है ...
मैंने यह भी पाया है कि मैं SQLITE_OMIT_AUTOINCREMENT
compile option साथ SQLite निर्माण कर सकते हैं, लेकिन मैं निष्क्रिय करने के लिए नहीं करना चाहते हैं व्यवहार वैश्विक स्तर पर, सिर्फ इस विशेष कॉलम के लिए।
sqlite> CREATE TABLE FOO(bar integer NOT NULL);
sqlite> INSERT INTO FOO(bar) VALUES(NULL);
SQL error: foo.bar may not be NULL
मैं कैसे तालिका ताकि शून्य मान खारिज हो चुके हैं और प्राथमिक कुंजी बाधा रखने को परिभाषित कर सकते हैं:
दिलचस्प बात यह है कि अगर मैं PRIMARY KEY
बाधा शामिल नहीं है, मैं वांछित व्यवहार मिलता है?
वाह, दस्तावेज में ठीक है ...: डी –
आप शायद अपनी तालिका में "बेकार" रिकॉर्ड्स के निर्माण को रोकने के लिए न्यूल के साथ अद्वितीय को जोड़ना चाहते हैं। – Timo