स्पष्टता के लिए संपादित
SQL विशिष्टता के अनुसार, प्राथमिक कुंजी में NULL नहीं हो सकता है। इसका मतलब यह है कि कॉलम को या तो "पूर्ण प्राथमिक कुंजी नहीं" या केवल "प्राथमिक कुंजी" के साथ सजाने से वही काम करना चाहिए। लेकिन आप SQL मानक का सही ढंग से पालन करते हुए SQL इंजन पर निर्भर हैं। एक प्रारंभिक बग के कारण एक उदाहरण के रूप में, SQL लाइट मानक को सही ढंग से लागू नहीं करता है और गैर-पूर्णांक प्राथमिक कुंजियों में शून्य मानों की अनुमति देता है (देखें sqlite.org/lang_createtable.html)। इसका मतलब होगा (कम से कम) SQLLite के लिए दो कथन दो अलग-अलग काम करते हैं।
चूंकि "NOT NULL PRIMARY KEY" स्पष्ट रूप से आशय को इंगित करता है और गैर-शून्य मानों को लागू करना जारी रखता है, भले ही प्राथमिक कुंजी को हटा दिया जाए, यह पसंदीदा सिंटैक्स होना चाहिए।