sqlite的自增主鍵與自增主鍵歸零

2021-06-26 15:50:16 字數 914 閱讀 5958

引用:

1.sqlite的自增主鍵:

用資料庫快取一些資料,想實現佇列的那種,先入先出,需要對插入sqlite的資料進行個排序,實驗了rowid,好像sqlite不能按照rowid刪除,故考慮增加乙個自增主鍵的字段,來區分插入的先後!

sqlite從2.3.4版本開始支援自增主鍵,

如果將乙個表中的乙個字段宣告為 integer primary key,那麼只需向該錶的該字段插入乙個 null 值,這個 null 值將自動被更換為比表中該字段所有行的最大值大 1 的整數;如果表為空,那麼將被更換為 1。

create table "processlist"(

[id] integer(4) primary key

,[type] varchar(20)

,[name] varchar(30)

,[isuse] int)執行

insert into processlist

values

(null,'a','b',1)

故建議sql為:

create table "processlist"(

[id] integer(4) 

autoincrement

primary key

,[type] varchar(20)

,[name] varchar(30)

,[isuse] int)

2.自增主鍵歸零

自增主鍵是通過表sqlite_sequence來實現的。使用自增長字段,引擎會自動產生乙個sqlite_sequence表,在sqlite_sequence中有兩個欄位name、seq。name記錄了表名,seq記錄了該錶的最大id,每插入一條記錄,相應的seq加1,刪除記錄時,此記錄不會變化。

故若想自增主鍵歸零需手動修改sqlite_sequence中相應的記錄。

mysql 主鍵自增語句 MySQL 自增主鍵

以下僅考慮 innodb 儲存引擎。自增主鍵有兩個性質需要考慮 單調性每次插入一條資料,其 id 都是比上一條插入的資料的 id 大,就算上一條資料被刪除。連續性插入成功時,其資料的 id 和前一次插入成功時資料的 id 相鄰。自增主鍵的單調性 為何會有單調性的問題?這主要跟自增主鍵最大值的獲取方式...

MySQL設定主鍵自增和非主鍵自增

mysql 每張表只能有1個自動增長字段,這個自動增長字段即可作為主鍵,也可以用作非主鍵使用,但是請注意將自動增長字段當做非主鍵使用時必須必須為其新增唯一索引,否則系統將會報錯。例如 將自動增長字段設定為主鍵 create table t1 id int auto increment primary...

Oracle主鍵自增

1.建立資料表 create table test increase userid number 10 primary key,主鍵,自動增加 username varchar2 20 2.建立自動增長序列 create sequence testincrease sequence incremen...