sql刪除一條記錄後其他記錄的id自動遷移,使id連續
在寫一個應用時,有這麼一個操作:客戶端傳過來點選的位置,進行運算後得到相應資料在資料庫裡的id,然後顯示對應的資訊。
但是在進行delete後資料顯示就混亂了,發現根本原因是原本連續的資料id(例如:1、2、3、4),在sqlite的delete語句執行完後(比如說刪除id為2的資料),變得不連續(1、3、4)。
刪除後點選第三個資料,結果他顯示成第二個,而第二個早就刪除了,因此顯示的資訊完全混亂。
解決程式碼如下:
在執行刪除時更新表,把刪除位置後面的都往前移動一位
db.execSQL("delete from tb_diary2 where _id in ("+ sb + ")",
(Object[]) ids);
//更新id,使id大於要刪除的id的往前移動一位。
db.execSQL("update tb_diary2 set _id=_id-1 where _id > ?",(Object[] )ids);
很多網友都說這樣會影響效能,應該用觸發器進行操作。因為偶資料庫基礎比較渣,最近又忙著先實現功能,只好先這樣,日後有能力、有時間再優化吧
相關文章
- 刪除重複id的記錄
- mysql刪除一條記錄MySql
- sql刪除重複記錄只保留一條SQL
- MySQL刪除重複記錄並保留第一條MySql
- 挺有意思:PHP 將N秒內連續的記錄視為一條記錄PHP
- Oracle如何刪除表中重複記錄保留第一條Oracle
- 刪除Chrome位址列記錄中自動補全的網址Chrome
- jQuery動態新增和刪除表格記錄jQuery
- SQL 如何查詢連續上漲 N 次的記錄SQL
- 使用者對某條賬單記錄的刪除操作
- 如何刪除遠端桌面歷史連線記錄
- 遷移WSL Ubuntu到其他目錄Ubuntu
- 四個id 生成器效能比較記錄
- 記錄一次XTTS遷移碰到的問題TTS
- windows10更新記錄刪除_怎樣刪除win10更新歷史記錄WindowsWin10
- Mysql語句查詢指定重複記錄和刪除重複記錄僅保留一條【親測可以】MySql
- [20180614]刪除bootstrap$記錄無法啟動2boot
- [20180612]刪除bootstrap$記錄無法啟動.txtboot
- 記錄一個sqlSQL
- WindowsServer 2012資料庫遷移記錄WindowsServer資料庫
- [20190130]刪除tab$記錄的恢復.txt
- win10如何遷移qq聊天記錄 win10電腦qq聊天記錄怎麼遷移Win10
- SAP RETAIL 事務程式碼WRDL - 刪除自動補貨執行記錄AI
- 記錄一次餘額遷移的坑(測試角度)
- MySQL:簡單記錄刪除binary log的介面MySql
- SAP QM 樣品廢棄後如何刪除physical samples記錄?
- 20180614刪除bootstrap$記錄無法啟動3補充boot
- 記錄一次刪除檔案失敗的問題
- 為什麼刪除記錄表檔案不會減小?(記錄的插入與刪除在磁碟上的變化)
- Win10系統遠端桌面連線記錄如何刪除Win10
- Mac 備忘錄( Notes)裡筆記被永久刪除後的找回方法Mac筆記
- MariaDB刪除重複記錄效能測試
- mysql支援跨表delete刪除多表記錄MySqldelete
- 記錄一次遷移環境 .env 出現的問題
- 怎麼刪除電腦中開啟的檔案記錄?刪除電腦中開啟的檔案記錄方法教程
- win10更新失敗記錄怎麼刪除_win10更新失敗記錄刪除操作方法Win10
- win10怎麼刪除搜尋框記錄_win10系統刪除搜尋框記錄的步驟Win10
- SQL 如何返回最大值所在的多條記錄SQL
- [20190225]刪除tab$記錄的恢復5.txt