2014-09-20 82 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

相关问题