Редактирано за яснота
Според спецификацията на SQL първичният ключ не може да съдържа NULL. Това означава, че декорирането на колона с „NOT NULL PRIMARY KEY“ или просто „PRIMARY KEY“ трябва да направи същото. Но вие разчитате на въпросния SQL двигател, който правилно следва SQL стандарта. Като пример поради ранен бъг, SQL Lite не прилага правилно стандарта и позволява нулеви стойности в нецелочислени първични ключове (вижте sqlite.org/lang_createtable.html). Това би означавало за (поне) SQLLite двата израза правят две различни неща.
Тъй като „NOT NULL PRIMARY KEY“ ясно показва намерението и продължава да налага ненулеви стойности, дори ако първичният ключ бъде премахнат, това трябва да бъде предпочитаният синтаксис.