成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

SQLite3中自增主鍵相關知識總結

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

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

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

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

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

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

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

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

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

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

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

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

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

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

標簽: SQLite
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
国产精品综合视频| 欧美韩国日本不卡| 欧美成人一区二区三区在线观看| 亚洲一区二区中文在线| 欧美精品aa| 久久综合久久综合久久| 蜜桃av噜噜一区| 每日更新成人在线视频| 亚洲综合色网站| 欧美日一区二区在线观看 | 国产三区精品| 亚洲婷婷在线视频| 黄色av一区| 中文字幕中文字幕一区| 黄色成人av网站| 中文字幕精品一区| 色综合婷婷久久| 日本一区二区视频在线| 欧美日韩国产成人精品| 国产精品欧美久久久久一区二区| 欧美日韩一区在线播放 | 欧美视频一二三区| 免费看欧美美女黄的网站| 色94色欧美sute亚洲线路一ni| 亚洲不卡在线观看| 色先锋资源久久综合| 免费国产亚洲视频| 欧美亚洲尤物久久| 久久精品国产99久久6| 欧美日韩一区二区三区在线 | 精品久久久久久久一区二区蜜臀| 丰满少妇久久久久久久| 欧美v亚洲v综合ⅴ国产v| 成人免费毛片aaaaa**| 久久综合色之久久综合| 欧美jjzz| 亚洲人成在线播放网站岛国| 国产伦精品一区二区三| 亚洲成人tv网| 欧美日韩免费一区二区三区视频| 久久精品av麻豆的观看方式| 欧美精品在线观看播放| 成人综合在线观看| 久久九九99视频| 国产一区视频观看| 亚洲综合一二区| 一本大道av伊人久久综合| 毛片基地黄久久久久久天堂| 欧美精品三级在线观看| av在线这里只有精品| 国产精品久久久久一区| 亚洲一区图片| 国产美女久久久久| 国产亚洲精品久| 亚洲精品麻豆| 午夜欧美大尺度福利影院在线看| 欧美亚洲国产一区二区三区 | 在线一区二区视频| 国产成人午夜99999| 国产三级精品三级| 亚洲三级国产| 免费在线一区观看| 亚洲精品在线电影| 亚洲国产精选| 美女视频黄久久| 日本道免费精品一区二区三区| 国产在线视频一区二区三区| 久久综合九色综合欧美亚洲| 亚洲精品色图| 久久疯狂做爰流白浆xx| 2023国产精品自拍| 一本色道久久综合亚洲精品婷婷| 美日韩一级片在线观看| 欧美成人性福生活免费看| 欧美激情91| 一区二区三区视频在线观看| 欧美日韩国产首页| 欧美日韩一区二区三区免费| 日韩高清不卡一区二区| 欧美tickling网站挠脚心| 亚洲国产日韩综合一区| 日韩精彩视频在线观看| 欧美不卡一区二区三区| 国产精品乱看| 国产精品69毛片高清亚洲| 136国产福利精品导航| 欧美三级资源在线| 欧美激情亚洲| 蜜臀av一区二区| 中文字幕巨乱亚洲| 欧美中文字幕亚洲一区二区va在线| 99视频在线观看一区三区| 五月天久久比比资源色| 久久免费的精品国产v∧| 久久福利一区| 波多野结衣的一区二区三区| 亚洲一区二区视频在线观看| 宅男噜噜噜66一区二区66| 亚洲国产精品一区| 国产麻豆精品久久一二三| 国产精品国产三级国产专播品爱网| 欧美专区日韩专区| 欧美精品午夜| 蜜臀精品久久久久久蜜臀| 欧美激情艳妇裸体舞| 欧美在线观看一二区| 亚洲激情自拍| 不卡视频在线看| 日韩精品一区第一页| 国产欧美va欧美不卡在线 | 中国av一区二区三区| 欧美三级欧美一级| 亚洲精品国产日韩| 99精品视频一区| 蜜桃视频免费观看一区| 国产精品麻豆欧美日韩ww| 777a∨成人精品桃花网| 亚洲一区三区视频在线观看| 91日韩精品一区| 精品一区二区三区蜜桃| 亚洲激情图片小说视频| 亚洲精品一区二区三区影院| 在线精品观看国产| 亚洲国产精品一区| av一区二区不卡| 久久av中文字幕片| 亚洲一区二区三区视频在线 | 激情六月婷婷综合| 午夜精品一区二区三区三上悠亚| 国产精品热久久久久夜色精品三区| 欧美日韩国产精选| 亚洲欧美久久| 亚洲精品1234| 欧美大香线蕉线伊人久久国产精品| 国产精品资源网站| 日本伊人午夜精品| 一区二区免费看| 久久久久久久久97黄色工厂| 91精品国产高清一区二区三区| 一本久久综合亚洲鲁鲁五月天| 亚洲精品乱码久久久久久蜜桃91| 欧美精品三区| 91视频观看免费| 国产suv一区二区三区88区| 久久精品国产免费看久久精品| 亚洲福利电影网| 亚洲免费观看高清完整版在线观看熊 | 97久久精品人人做人人爽| 看电影不卡的网站| 日韩精品午夜视频| 亚洲愉拍自拍另类高清精品| 亚洲欧美综合另类在线卡通| 国产区在线观看成人精品| 精品乱人伦小说| 日韩免费性生活视频播放| 欧美酷刑日本凌虐凌虐| 在线免费观看一区| 久久久久一区二区三区| 国产精品日本一区二区 | 噜噜噜躁狠狠躁狠狠精品视频 | 日韩久久久久久| 3751色影院一区二区三区| 精品1区2区3区| 欧美日韩综合不卡| 欧美午夜一区二区三区| 色美美综合视频| 美日韩在线观看| 先锋影音久久久| 亚洲一区观看| 国产伦精品一区二区三区视频黑人| 亚洲第一网站| 日韩视频在线一区二区三区| 99精品99久久久久久宅男| 国产日韩一区二区三区在线播放| 亚洲青涩在线| 亚洲乱码久久| 一本久久综合| 免费日韩一区二区| 色偷偷久久一区二区三区| 欧美色精品在线视频| 67194成人在线观看| 欧美一级黄色片| 日韩欧美国产精品一区| 精品免费日韩av| 26uuu国产一区二区三区| 国产亚洲女人久久久久毛片| 国产精品美女久久久久久久久久久| 国产精品国产自产拍高清av王其| 亚洲少妇屁股交4| 亚洲 欧美综合在线网络| 日韩av网站免费在线| 久久99精品一区二区三区三区| 国产一区在线视频| 成人aa视频在线观看| 欧美日韩综合久久| 国产精品亚洲综合色区韩国| 老司机午夜精品视频在线观看| 精品视频在线免费看| 精品区一区二区| 国产精品第四页|