我有一个由sqlite表支持的ContentProvider。所以创建我的表我使用alter sqlite表在多列上添加唯一约束
public class H extends SQLiteOpenHelper {
@Override
public void onCreate(SQLiteDatabase sqliteDatabase) {
…// here I defined my original table without constraints
}
}
最初创建时,该表具有列:name,age,height。没有限制。没有。
现在我需要添加约束到表。所以我增加了DATABASE_VERSION,然后在onCreate String中添加了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)