Modificato per chiarezza
Secondo la specifica SQL, una chiave primaria non può contenere NULL. Ciò significa che la decorazione di una colonna con "CHIAVE PRIMARIA NON NULLA" o semplicemente "CHIAVE PRIMARIA" dovrebbe fare la stessa cosa. Ma stai facendo affidamento sul motore SQL in questione seguendo correttamente lo standard SQL. Ad esempio, a causa di un bug iniziale, SQL Lite non implementa correttamente lo standard e consente valori null in chiavi primarie non intere (vedi sqlite.org/lang_createtable.html). Ciò significherebbe per (almeno) SQLLite le due istruzioni fanno due cose diverse.
Poiché "CHIAVE PRIMARIA NON NULLA" indica chiaramente l'intento e continua a prevalere valori non nulli anche se la chiave primaria viene rimossa, questa dovrebbe essere la sintassi preferita.