1
通常,當Sqlite遇到integer primary key
語句時,例如「NOT NULL」防止rowid別名?
CREATE TABLE [T] (id INTEGER PRIMARY KEY, [...]);
則id
列將是一個別名的rowid列,該列是SQLite的內部ID列。
然而,附加not null
到
CREATE TABLE [T] (Id INTEGER PRIMARY KEY NOT NULL, [...]);
時走樣仍然激活?
NOT NULL
應該不會影響表的語義特性,但對於混疊的規則是相當嚴格的(例如,它不會接受int
,而不是integer
),所以也許這細微的變化已經將防止混疊。
我不熟悉Sqlite的細節 - 你確定「not null」不是_type_的一部分嗎?它是否像一個約束(在這種情況下是無用的)放在列上? – mafu
這就是我所說的。這就是文檔所說的(參見'column-def')。 –