2012-03-18 22 views
9

Tüm satırları bir tablodan kaldıracak bu yönteme sahibim fakat aynı zamanda yeni bir satır eklendiğinde, tekrar başlatılmaya başlayacaktır. Kullanmakta olduğum SQL ifadesi, mevcut olmayan belirli sütunlar nedeniyle çalışmıyor. Doğru yapıyor muyum?Android'de Autoincrement'ı Sıfırlama SQLite

private void rmvAll() { 

    SQLiteDatabase db = appts.getWritableDatabase(); 
    db.delete(TABLE_NAME, null, null); 
    db.execSQL("DELETE FROM SQLITE_SEQUENCE WHERE NAME = " + TABLE_NAME); 

} 

cevap

19

Eğer tablo adını tek tırnak gerekir, yani

dldnh cevabı üzerine
db.execSQL("DELETE FROM SQLITE_SEQUENCE WHERE NAME = '" + TABLE_NAME + "'"); 
3

Bina:

aşağıdaki sorgu col kimlik sütunundaki büyük değere seq ayarlayacaktır Tbl tablosunda, kısıtlamaları ihlal etme riski yoktur.

UPDATE sqlite_sequence SET seq = (SELECT MAX(col) FROM Tbl) WHERE name="Tbl" 
0

da ben çok sert çalışıyordu bu

db.delete("SQLITE_SEQUENCE","NAME = ?",new String[]{TABLE_NAME}); 
1

gibi SQLiteDatabase ait() yöntemini silmek kullanabilirsiniz.

Son olarak, bu yanıt kodu ... silme ve yeniden table.and sıfırlama id gibi

Book.deleteAll(Book.class); 
book=new Book(user, pass); 
book.setId(Long.valueOf(book.listAll(Book.class).size())); 
book.save(); 

bu kod işim var.

iyi şanslar

+0

önemli: android stüdyoda işlenen şeker ormunun anında çalıştırmayı devre dışı bırakması gerekir –