我有一个由SQLite表支持的ContentProvider。为了创建我的表格,我使用了下面的代码:
public class H extends SQLiteOpenHelper {
@Override
public void onCreate(SQLiteDatabase sqliteDatabase) {
…// here I defined my original table without constraints
}
}
当最初创建表时,它有三列:姓名、年龄和身高。没有约束条件,什么也没有。
现在我需要向表中添加约束条件。因此,我增加了DATABASE_VERSION,并在onCreate字符串中添加了
UNIQUE(name,age) ON CONFLICT REPLACE
。我的问题是,在
onUpgrade
方法中应该做什么?更简单地说,我如何调用ALTER TABLE
来仅添加约束条件?我的尝试失败了。ALTER TABLE myTable ADD UNIQUE(name,age) ON CONFLICT REPLACE
这是错误信息:
Caused by: android.database.sqlite.SQLiteException: near "CONSTRAINT": syntax error (code 1): , while compiling: ALTER TABLE myTable ADD CONSTRAINT UNIQUE(name,age) ON CONFLICT REPLACE
#################################################################
Error Code : 1 (SQLITE_ERROR)
Caused By : SQL(query) error or missing database.
(near "CONSTRAINT": syntax error (code 1): , while compiling: ALTER TABLE myTable ADD CONSTRAINT UNIQUE(name,age) ON CONFLICT REPLACE)