【发布时间】:2014-10-02 09:08:56
【问题描述】:
我有一个名为 Details 的数据库表,这里有我感兴趣的三列:
| _id | Name | DOB | ......| .....
我在上面创建了一个唯一索引 - 我不希望有两行具有相同的名称和出生日期:
CREATE UNIQUE INDEX _id ON Details (Name, BirthDate);
现在我的问题场景如下: 我正在从一个文件中读取 - 在 for 循环内 - 对于文件中的每一行,如果我的插入查询发现重复,我将一条记录插入上表,它返回什么?我想在找到重复项并开始下一次迭代后停止 for 循环的迭代以跳过插入语句。我如何检测到这一点?
以下是我的插入语句:
public void insert(String birthDate, String name, String daysOld, String hoursOld, String uRi, String minutesOld, String months, String seconds, String timestamP, String weeks, String years, String isAdhoc){
// InsertHelper ih = new InsertHelper(db, "columnTable");
String INUP= "INSERT OR REPLACE INTO Details (BirthDate, Name, isAdhoc, daysOld, hoursOld, imageUri, minutesOld, monthsOld, secondsOld, timestamp, weeksOld, yearsOld) " +
"values ("+"'"+birthDate+"'"+","+"'"+name+"'"+","+"'"+isAdhoc+"'"+","+"'"+daysOld+"'"+","+"'"+ hoursOld+"'"+","+"'"+ uRi+"'"+","+"'"+minutesOld+"'"+","+"'"+ months+"'"+","+"'"+ seconds+"'"+","+"'"+timestamP+"'"+","+"'"+weeks+"'"+","+"'"+years+"'"+");";
mDb.execSQL(INUP);
}
【问题讨论】:
-
向我们展示您的 java 代码。执行 SQL 命令时,应检查返回值。
-
谢谢,您要检查我的 java 代码的哪一部分?插入语句?代码太大了,但是我可以重现相关的sn-ps。
-
插入语句可能就够了。
-
我已经更新了以上内容,请刷新:)
标签: android sqlite unique-index