sqlite 如何建立自動增長字段

2021-05-23 21:55:51 字數 734 閱讀 7408

(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錯誤**。

sqlite3如何建立自動增長字段

1 如何建立自動增長字段?簡短回答 宣告為 integer primary key 的列將會自動增長。長一點的答案 如果你宣告表的一列為 integer primary key,那麼,每當你在該列上插入一null值時,null自動被轉換為乙個比該列中最大值大1的乙個整數,如果表是空的,將會是1。如果...

oracle建立自動增長字段

oracle資料庫與其他的資料庫不太一樣,比如在mysql裡自動增長只要設定 auto increment 即可。可是在oracle裡就麻煩了。本文就說說在oracle裡建立自動增長的字段。sql create table createtableuserinfo id number not null...

oracle建立自動增長字段

oracle資料庫與其他的資料庫不太一樣,比如在mysql裡自動增長只要設定 auto increment 即可。可是在oracle裡就麻煩了。本文就說說在oracle裡建立自動增長的字段。create table create table userinfo id number not null u...