我有一個由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)