(1) 如何建立自動增長字段?
簡短回答:宣告為 integer primary key 的列將會自動增長。
長一點的答案: 如果你宣告表的一列為 integer primary key,那麼, 每當你在該列上插入一null值時, null自動被轉換為乙個比該列中最大值大1的乙個整數,如果表是空的, 將會是1。 (如果是最大可能的主鍵 9223372036854775807,那個,將鍵值將是隨機未使用的數。) 如,有下列表:
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(), 它將返回最近插入的整數值。
注意該整數會比表中該列上的插入之前的最大值大1。該鍵值在當前的表中是唯一的。但有可能與已從表中刪除的值重疊。要想建立在整個表的生命週期中唯一的鍵值,需要在 integer primary key 上增加autoincrement宣告。那麼,新的鍵值將會比該錶中曾能存在過的最大值大1。如果最大可能的整數值在資料表中曾經存在過,insert將會失敗, 並返回sqlite_full錯誤**。
sqlite 如何建立自動增長字段
1 如何建立自動增長字段?簡短回答 宣告為 integer primary key 的列將會自動增長。長一點的答案 如果你宣告表的一列為 integer primary key,那麼,每當你在該列上插入一null值時,null自動被轉換為乙個比該列中最大值大1的乙個整數,如果表是空的,將會是1。如果...
使用sqlite3 模組操作sqlite3資料庫
python內建了sqlite3模組,可以操作流行的嵌入式資料庫sqlite3。如果看了我前面的使用 pymysql 操作mysql資料庫這篇文章就更簡單了。因為它們都遵循pep 249,所以操作方法幾乎相同。廢話就不多說了,直接看 吧。都差不多,首先匯入模組,然後建立連線,然後獲取游標物件,之後利...
Sqlite3的自增長字段清零
sqlite3記錄被清除之後,如果表中有自增長字段,下次再插入資料,會繼續延續之前自增長欄位的歷史記錄。清除方法 在sqlite3建立帶自增長欄位的表時,sqlite3會建立這個表存放自增長序列 sqlite sequence 該錶內容 寫道 sqlite select from sqlite se...