2014-09-20 97 views
0

我有一個應用程序使用SQLiteAssetHelper。我試圖更新其數據庫以包含一個額外的表。SQLiteAssetHelper升級異常

一切都很好,除了我不能使主鍵自動增量。無論我嘗試給我一個例外。

我認爲這可能是一個語法問題,因爲使用INTEGER而不是INT也會使應用程序崩潰。

我在哪裏可以找到SQLiteAssetHelper使用的語法的參考?

謝謝大家。

違規的腳本如下所示:

CREATE TABLE heat (
_id int PRIMARY KEY AUTOINCREMENT, 
amount int, 
comment text 
); 

即使當我拿到劇本的工作(是AUTOINCREMENTauto_increment?),insert語句無法在_id列添加值。它留空。

final ContentValues cv = new ContentValues(); 

cv.put(KEY_AMOUNT, lAmount); 
cv.put(KEY_COMMENT, sComment); 

final long lId = m_db.insert(TABLE_NAME, null, cv); 
+0

你可以粘貼你的表創建語句嗎? – 2014-09-20 10:10:21

+0

已更新的問題。謝謝。 – Lara 2014-09-20 20:11:31

+0

將您的代碼插入新記錄 – 2014-09-20 20:12:53

回答

0

更改數據庫版本表

private static final int DATABASE_VERSION = 1; 

public DatabaseHandler(Context context) { 
    super(context, DATABASE_NAME, null, DATABASE_VERSION); 
} 
+0

不,不。問題不在那裏。我可以更新。我不能做的是在主鍵上添加一個帶有自動增量的新表。沒有自動增量,沒有問題。 – Lara 2014-09-20 10:09:52

0

AUTOINCREMENT需要INTEGER PRIMARY KEY,一個INT PRIMARY KEY不會做升級。改變這個問題解決了你發佈的SQL問題。如果您有其他問題,請發佈異常消息和導致它的代碼。

+0

問題是SQLiteAssetHelper升級所需的腳本無法與INTEGER一起使用。 – Lara 2014-09-20 23:10:00

相關問題