通常、Sqlite がinteger primary key
ステートメントに遭遇したとき、たとえば
CREATE TABLE [T] (id INTEGER PRIMARY KEY, [...]);
その列は、Sqlite の内部 ID 列であるrowidid
列のエイリアスになります。
ただし、追加not null
するときは
CREATE TABLE [T] (Id INTEGER PRIMARY KEY NOT NULL, [...]);
エイリアシングはまだアクティブですか?
NOT NULL
はテーブルのセマンティック プロパティに影響を与えるべきではありませんが、エイリアシングの規則は非常に厳密です (たとえば、int
の代わりに受け入れられませinteger
ん)。