日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

SQLite3中自增主鍵相關(guān)知識總結(jié)

瀏覽:917日期:2023-04-05 14:56:07

一、SQLite清空表并將自增列歸零

SQL標準中有TRUNCATE TABLE語句,用來清空表的所有內(nèi)容。
但SQLite不支持這個語句。在SQLite中直接使用 DELETE FROM TableName 就可以了。
對于大多數(shù)DBMS來說,用DELETE不如用TRUNCATE 速度快,因為TRUNCATE 不用訪問整個表,不用記錄數(shù)據(jù)的變動。

SQLite雖然不支持TRUNCATE,但它對DELETE做了優(yōu)化:
通常在清空表的時候,還需要把自增列歸零。在SQLite中定義自增列的方法如下:
復(fù)制代碼 代碼如下:CREATE TABLE TableName ( id INTEGER PRIMARY KEY AUTOINCREMENT, name varchar, type Integer );

當(dāng)SQLite數(shù)據(jù)庫中包含自增列時,會自動建立一個名為 sqlite_sequence 的表。
這個表包含兩個列:name和seq。name記錄自增列所在的表,seq記錄當(dāng)前序號(下一條記錄的編號就是當(dāng)前序號加1)。
如果想把某個自增列的序號歸零,只需要修改 sqlite_sequence表就可以了。
復(fù)制代碼 代碼如下:UPDATE sqlite_sequence SET seq = 0 WHERE name="TableName";

也可以直接把該記錄刪掉:      
復(fù)制代碼 代碼如下:DELETE FROM sqlite_sequence WHERE name="TableName";
要想將所有表的自增列都歸零,直接清空sqlite_sequence表就可以了:
復(fù)制代碼 代碼如下:DELETE FROM sqlite_sequence;

二、Sqlite中INTEGER PRIMARY KEY AUTOINCREMENT和rowid的使用

在用sqlite設(shè)計表時,突然想到一個問題,就是我設(shè)計的表中,每個表都有一個自己的整形id值作為主鍵,
其實可以不指定這么一個id值,sqlite內(nèi)部本來就會為每個表加上一個 rowid,這個rowid可以當(dāng)成一個隱含的字段使用,

為什么不直接使用這個內(nèi)部的rowid作為每個表的id主鍵呢。
使用自增長字段為主鍵有不少問題,比如維護或是在大型分布應(yīng)用中主鍵沖突的解決等。
在一些大型分布應(yīng)用中主鍵一般選用guid,這可以有效的避免主鍵沖突,減少對主鍵維護的工程。
當(dāng)然,對于中小型的應(yīng)用,自增長字段的好處更多一些,簡單、快速。

Sqlite中,一個自增長字段定義為 INTEGER PRIMARY KEY AUTOINCREMENT
那么在插入一個新數(shù)據(jù)時,只需要將這個字段的值指定為NULL,即可由引擎自動設(shè)定其值,
引擎會設(shè)定為最大的rowid+1 當(dāng)然,也可以設(shè)置為非NULL的數(shù)字來自己指定這個值,但這樣就必須自己小心,不要引起沖突。

rowid的新值會這個最大數(shù)之前隨機找一個沒被使用了的值。所以在rowid達到最大值前,rowid的值是嚴格單調(diào)增加的。
INTEGER PRIMARY KEY AUTOINCREMENT 自增長字段的算法與rowid稍微有些不同。
第一,在達到最大值后,rowid會找已被刪除的字段對應(yīng)的rowid作為新值,而自增長字段則會丟出一個SQLITE_FULL的錯誤。
第二,自增長字段在增加新值時,是找一個從沒被使用過的rowid作為新值,而rowid則是找最大已存在的rowid+1。

這里對應(yīng)用的影響會比較大,尤其是一些對id值有依賴的元記錄,只適合使用自增長字段而不能用rowid。
比如,我們設(shè)計一個元記錄表:
復(fù)制代碼 代碼如下:Create table meta_struct(id INTEGER PRIMARY KEY AUTOINCREMENT, name varchar, type Integer);
然后,定義一個一級表,來描述其它表的結(jié)構(gòu):
復(fù)制代碼 代碼如下:Create table meta_table(tableid INTEGER, table_field integer)

最后,我們的應(yīng)用可以根據(jù)這個一級表來產(chǎn)生實際使用的二級表。
這樣為保證兼容性meta_struct中的id必須是唯一的,如果有字段被刪除,也不能重復(fù)使用這個字段的id值,不然,在數(shù)據(jù)庫合并時,
一級表和二級表就會混亂。所以meta_struct表中的主鍵只能使用自增長字段,而不能用rowid。

第三,使用自增長字段,引擎會自動產(chǎn)生一個sqlite_sequence表,用于記錄每個表的自增長字段的已使用的最大值,用戶可以看到,
并可以用使用Update、Delete和Insert操作,但不建議這么使用,這會讓引擎混亂。如果使用rowid,也會有這么一個內(nèi)部表,用戶可以維護rowid值,但看不到。

標簽: SQLite
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
色婷婷成人网| 国产精品一区免费在线| 精品国产精品久久一区免费式| 亚洲精品伦理| 亚洲乱码一区| 日韩av一二三| 国产精品亚洲片在线播放| 国产视频一区二区在线播放| 国产精品色在线网站| 国产精品视频一区二区三区 | 国内精品美女在线观看| 国产精品天天看天天狠| 精品亚洲a∨一区二区三区18| 加勒比视频一区| 精品视频在线观看网站| 日韩精品电影| 激情综合网站| 蜜臀久久久99精品久久久久久| 日韩精品高清不卡| 国产精品欧美日韩一区| 精品一区二区男人吃奶| 日韩一区二区三区在线免费观看| 久久久国产亚洲精品| 亚洲精品一区二区在线看| 久久精品免费一区二区三区| 黑丝美女一区二区| 午夜在线精品| 国产视频网站一区二区三区| 久久久免费人体| 色一区二区三区| 亚洲综合丁香| 国产精品中文| 日韩在线短视频| 玖玖玖国产精品| 免费看久久久| 国产综合亚洲精品一区二| 亚洲综合色婷婷在线观看| 国产精品一区2区3区| 91综合网人人| 91亚洲自偷观看高清| 好吊视频一区二区三区四区| 日本va欧美va精品发布| 手机在线电影一区| 亚洲欧美激情诱惑| 国产精品久久国产愉拍| 久久精品国产www456c0m| 亚洲专区一区| 国产一区福利| 免费人成精品欧美精品| 国产精品国产三级国产在线观看| 午夜久久福利| 国产精品毛片视频| 一区在线视频观看| 欧美日韩一区二区三区不卡视频| 久久99久久久精品欧美| 欧美1区2区3区| 国产精品一区二区三区av| 999国产精品999久久久久久| 亚州av一区| 久久久久国产精品一区二区| 日韩精品1区2区3区| 久久天堂精品| 欧美精品导航| 视频一区欧美日韩| 国产一区二区三区四区五区| 99香蕉国产精品偷在线观看 | 欧美视频精品全部免费观看| 日韩av在线中文字幕| 蜜桃久久久久久久| 亚洲国产成人二区| 日韩欧美另类中文字幕| 欧美亚洲在线日韩| 久久三级毛片| 日本不卡一二三区黄网| 欧美色图国产精品| 精品国产麻豆| 日韩精品一区二区三区中文字幕| 久久久噜噜噜| 国产美女撒尿一区二区| 亚洲一区二区三区四区五区午夜 | 国产一区丝袜| 亚洲欧美网站在线观看| 99久精品视频在线观看视频| 久久不见久久见中文字幕免费| 亚洲国产专区校园欧美| 久久国际精品| 亚洲精品国产精品粉嫩| 91精品成人| 电影亚洲精品噜噜在线观看| 欧美精品97| 日韩av成人高清| 久久福利一区| 亚洲福利精品| 日本高清不卡一区二区三区视频| 国产欧美日韩一级| 久久蜜桃精品| 成人美女视频| 黄色网一区二区| 国产精品多人| 国产欧美一区| 911精品国产| 亚洲欧美网站在线观看| 国产中文一区| 日韩毛片在线| 欧美天堂视频| 日韩成人a**站| 国产一区二区三区国产精品| 国产精品国产三级在线观看| 亚洲精品大全| 亚洲一区二区三区四区电影| 日韩在线中文| 欧美片第1页| 日韩免费小视频| 亚洲国产成人二区| 久久这里只有| 精品国产三区在线| 国产激情欧美| 国产精品sss在线观看av| 国产欧美午夜| 国产精品一区2区3区| 国产毛片精品| 国产经典一区| 精品视频一区二区三区在线观看 | 久久精品一本| 精品资源在线| 日韩av二区| 色黄视频在线观看| 久久精品国产99久久| 日本久久成人网| 性欧美69xoxoxoxo| 亚洲一区国产一区| 亚洲欧洲国产精品一区| 亚洲欧洲专区| 欧美视频久久| 日本aⅴ亚洲精品中文乱码| 男人的天堂久久精品| 首页欧美精品中文字幕| 日韩在线成人| 国产亚洲一区二区三区啪| 国产精品最新| 精品久久精品| 久久精品官网| 久久午夜精品一区二区| 日韩精品1区2区3区| 国产乱码精品| av日韩中文| 婷婷综合在线| 少妇精品久久久一区二区三区| 91欧美精品| 欧美精品影院| 久久久国产精品入口麻豆| jizzjizz中国精品麻豆| 在线看片福利| 秋霞影视一区二区三区| 1024精品久久久久久久久| 亚洲精品成人一区| 欧美另类中文字幕| 麻豆中文一区二区| av综合电影网站| 播放一区二区| 免费人成精品欧美精品| 日韩激情网站| 中文字幕在线高清| 爽好多水快深点欧美视频| 综合激情一区| 免费一级欧美在线观看视频| 电影91久久久| 99热国内精品| 日韩精品一区二区三区中文字幕| 麻豆91小视频| 亚洲一级高清| 日韩三区四区| 黄色在线网站噜噜噜| 亚洲福利久久| 日本少妇一区二区| 久久久久久色| 日韩深夜视频| 亚洲高清成人| 欧美影院视频| 麻豆传媒一区二区三区| 99成人超碰| 国产亚洲高清在线观看| 香蕉成人av| 日韩欧美中文字幕电影| 中文字幕在线高清| 亚洲va久久久噜噜噜久久| 91视频一区| 亚洲综合福利| 免费在线小视频| 欧美精品国产一区| 欧美一级精品| 国产精品网址| 亚洲精品97| 麻豆一区二区三| 一区在线免费| 久久精品国产久精国产| 久久性天堂网| 成人国产精品一区二区网站| 久久成人一区| 色老板在线视频一区二区|