當你的數據庫使用自增長鍵的時候,其實系統會有一張表,記錄了當前自增加鍵當前的值。
但是用有些軟件看不到,比如我用的SqliteStadio:
可以看到裏面全是我們自己工程裏面的表。
那麼怎麼才能看到所有的表呢?
查看所有表的sql:
select name from sqlite_master where type='table' order by name
我們看下執行結果:
可以看到,結果裏面其實是有sqlite_sequence 這張表的。
我們看下sqlite_sequence 記錄的自增長情況:
SELECT * FROM sqlite_sequence
可以看到左邊是數據庫表的名稱,右邊是當前自增長值。如果想要清0怎麼辦?用以下方法即可。
/**
* 更新相關表在 {@link DBAdapter#TABLENAME_SQLITE_SEQUENCE} 中seq值爲0
*
* @param tableName 數據庫表名
*/
public void updateSEQValue(String tableName){
StringBuilder sb = new StringBuilder();
sb.append("update ").append(TABLENAME_SQLITE_SEQUENCE).append(" SET seq = 0 ").
append("where name =").append("'").append(tableName).append("'");
execSQL(sb.toString());
}
sql 語句爲:
update sqlite_sequence SET seq = 0 where name = "sign"
sign 爲你的數據庫表的名稱