如何在SQLite中建立自增字段?

2021-08-30 01:25:25 字數 489 閱讀 7262

簡單的回答:乙個宣告為 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位的整數,為什麼不直...