Redigerad för tydlighetens skull
Enligt SQL-specifikationen kan en primärnyckel inte innehålla NULL. Det betyder att dekoration av en kolumn med antingen "NOT NULL PRIMARY KEY" eller bara "PRIMARY KEY" bör göra samma sak. Men du litar på att SQL-motorn i fråga följer SQL-standarden korrekt. Som ett exempel på grund av en tidig bugg, implementerar SQL Lite inte standarden korrekt och tillåter null-värden i primärnycklar som inte är heltal (se sqlite.org/lang_createtable.html). Det skulle betyda för (åtminstone) SQLLite att de två satserna gör två olika saker.
Eftersom "NOT NULL PRIMARY KEY" tydligt indikerar avsikt och fortsätter att kräva icke-nullvärden även om primärnyckeln tas bort, bör det vara den föredragna syntaxen.