我正在创建一个数据库,我正在插入一行:
/* Add two DataSets to the Table. */
myDB.execSQL("INSERT INTO "
+ MY_DATABASE_TABLE
+ " (LastName, FirstName, Country, Age)"
+ " VALUES ('Gramlich', 'Nicolas', 'Germany', 20);");
myDB.execSQL("INSERT INTO "
+ MY_DATABASE_TABLE
+ " (LastName, FirstName, Country, Age)"
+ " VALUES ('Doe', 'John', 'US', 34);");
关于上述代码我有两个问题:
如何禁止重复记录?我想在插入时检查传入的数据。我怎样才能做到这一点?我应该使用IF NOT EXISTS
吗?
如何检查该数据库是否可用?到目前为止,没有成功,我尝试过:
private static String DB_PATH = "/data/data/YOUR_PACKAGE/databases/myDBName";
private static String DB_NAME = "myDBName";
private boolean checkDataBase() {
SQLiteDatabase checkDB = null;
try {
checkDB = SQLiteDatabase.openDatabase(DB_PATH, null,
SQLiteDatabase.OPEN_READONLY);
checkDB.close();
} catch (SQLiteException e) {
// database doesn't exist yet.
}
return checkDB != null ? true : false;
}
有关如何实现这一目标的任何建议吗?
答案 0 :(得分:6)
防止重复在该表上创建UNIQUE INDEX。
在运行时,您至少有两个选项:
如果您尝试复制,请让索引给您一个例外,然后捕获该异常并执行其他操作,或者
主动查询表以查看新记录是否存在,如果您发现它,则表示存在重复,请执行其他操作。
答案 1 :(得分:2)
以下是一些建议:
http://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html