簡單的回答:乙個宣告為 integer primary key 的字段將自動增加。
這裡是詳細的答案: 從 sqlite 的 2.3.4 版本開始,如果你將乙個表中的乙個字段宣告為 integer primary key,那麼無論你何時向該錶的該字段插入乙個 null 值,這個 null 值將自動被更換為比表中該字段所有行的最大值大 1 的整數;如果表為空,那麼將被更換為 1。比如,假設你有這樣的一張資料表:
create table t1(
a integer primary key,
b integer
);在這張資料表裡,宣告
insert into t1 values(null,123);
在邏輯意義上等價於:
insert into t1 values((select max(a) from t1)+1,123);
乙個新的api函式 sqlite3_last_insert_rowid() 返回最近的插入操作的整形鍵
sqlite3自增key設定 建立自增字段
在用sqlite設計表時,每個表都有乙個自己的整形id值作為主鍵,其實可以不指定這麼乙個id值,sqlite內部本來就會為每個表加上乙個 rowid,這個rowid可以當成乙個隱含的字段使用,但是由sqlite引擎來維護的,在3.0以前rowid是32位的整數,3.0以後是 64位的整數,為什麼不直...
sqlite3自增key設定 建立自增字段
在用sqlite設計表時,每個表都有乙個自己的整形id值作為主鍵,其實可以不指定這麼乙個id值,sqlite內部本來就會為每個表加上乙個 rowid,這個rowid可以當成乙個隱含的字段使用,但是由sqlite引擎來維護的,在3.0以前rowid是32位的整數,3.0以後是 64位的整數,為什麼不直...
sqlite3自增key設定 建立自增字段
在用sqlite設計表時,每個表都有乙個自己的整形id值作為主鍵,其實可以不指定這麼乙個id值,sqlite內部本來就會為每個表加上乙個 rowid,這個rowid可以當成乙個隱含的字段使用,但是由sqlite引擎來維護的,在3.0以前rowid是32位的整數,3.0以後是 64位的整數,為什麼不直...