我想將初始_id值大於21的所有記錄的Android SQLite數據庫表的主整數鍵字段(_id)增加1。從表底部到頂部運行SQLite查詢
我曾嘗試以下:
UPDATE tableName SET _id = _id+1 WHERE _id > 21
但是在完成第一次更新表(改變22〜23),有2個記錄用_id = 23這產生一個錯誤。通過從最後一個記錄到第一個記錄運行此過程而不是從頂部開始,有沒有辦法避免這個問題?
反過程:UPDATE tableName SET _id = _id-1 WHERE _id > 21
當_id = 21不存在時無錯誤地工作,所以第一條語句的問題肯定與雙倍的ID有關。
我正在嘗試使用DESC命令來解決此問題。我當前的代碼是下面的,但它不是正確的語法,這只是增加了最後一條記錄:
UPDATE tableName SET _id = _id+1 WHERE _id = (SELECT _id FROM tableName WHERE _id > 21 ORDER BY _id DESC)
爲什麼你需要更新一個ID? – laalto
首先獲取記錄DESC並在循環中更新它們。 –
@laalto - 由於記錄被刪除,數據庫中存在缺口,我需要將數據庫ID作爲其他幾段代碼的連續數字才能正常工作。 –