Начиная с версии 3.8.2 SQLite, альтернативой явным спецификациям NOT NULL является спецификация "БЕЗ ПУТИ": [ 1 ]
NOT NULL is enforced on every column of the PRIMARY KEY
in a WITHOUT ROWID table.
Таблицы «БЕЗ КРУГЛЫХ» имеют потенциальные преимущества в эффективности, поэтому следует рассмотреть менее подробную альтернативу:
CREATE TABLE t (
c1,
c2,
c3,
PRIMARY KEY (c1, c2)
) WITHOUT ROWID;
Например, в приглашении sqlite3:
sqlite> insert into t values(1,null,3);
Error: NOT NULL constraint failed: t.c2