2013-10-28 103 views
1

因此,我有一個關於圖像的數據表。表格看起來像這樣...SQLite查找最近或下一個ROWID的ROWID

ROWID|title|description|file_path 

文件路徑包含圖像的名稱。我想重命名圖像以匹配ROWID。

如何獲得最新的ROWID?我還需要考慮已被刪除的行,因爲我將其用作自動增量主鍵。因爲,如果表中的行已被刪除,可以爲表看起來像這樣...

1|title A|description A|..\fileA.jpg 
2|title B|description B|..\fileB.jpg 
5|title E|description E|..\fileE.jpg 
7|title G|description G|..\fileG.jpg 

最重要的是有可能已被刪除所以接下來ROWID一行或多行我所知道的可能是10。

我還需要考慮一個全新的表或已全部刪除的數據和表格的下一個ROWID可能是1000

綜上所述,我想真正的問題是;有沒有辦法找出下一個ROWID會是什麼?

+0

可能的重複[有效的方式來獲取未使用的rowid在Android/SQLite?](http://stackoverflow.com/questions/15028621/effective-way-to-get-unused-rowid-in-android-sqlite) –

回答

2

如果指定AUTOINCREMENT在主鍵字段,表不爲空此查詢將返回表MY_TABLE的最新ROWID:

SELECT seq 
FROM sqlite_sequence 
WHERE name = 'MY_TABLE' 
0

不幸的是nei這些方法完全按我需要的方式工作,但我最終做的是...

插入數據到表中與我需要rowid爲填充'aaa'字段 然後更新包含數據的行。

這似乎解決了我目前的問題。希望它不會導致另一個問題。

0

我認爲last_insert_rowid是你想要的,通常。

請注意,根據autoincrement標誌,rowid行爲會有所不同 - 要麼單調增加,要麼會假定任何空閒標識。儘管如此,這通常不會影響任何較小的用例。