【问题标题】:how to insert the same record but different value in android如何在android中插入相同的记录但不同的值
【发布时间】:2014-03-14 16:19:00
【问题描述】:

我在sqlite中有2列名称和日期,名称已经设置为唯一以避免重复输入,但我的问题是我想为列“名称”插入相同的记录,但在“日期”列中插入不同的记录.我也使用它来过滤重复记录并且它有效。

try {
    dbOpenHelperss.insertOrThrow("table", values);
} catch (SQLiteConstraintException e)
    //to detect if there is a duplicated item
}

例如在 column_name='Peter Xavier' column_date='02/15/14 中,我想插入不同日期的 Peter Xavier 记录,例如 column_name ='Peter Xavier' , column_date='02/16/14

到目前为止我尝试的是

if(!"column_date".equals(colum_name)) {
    //to compare two columns are not the same then insert                               
    ContentValues values = new ContentValues();
    values.put("column_name",name );
    values.put("column_date", date);

    try {
        dbOpenHelperss.insertOrThrow("table", values);
    } catch (SQLiteConstraintException e) { 
        // to detect if there is a duplicate entry
    }
}

【问题讨论】:

  • 删除name 列的unique。并使用新列来避免重复。例如:身份证。
  • 正如 Gunaseelan 所说..如果您想在名称列中插入重复值,那么为什么要定义它是唯一的?只需从名称列中删除唯一约束..
  • 感谢您的回复,我的意思是如果 column_name 和 column_date 相同,我将无法插入记录..如果 column_name 和 column_date 不同,我将能够插入

标签: android android-sqlite


【解决方案1】:

添加复合键。这意味着column_name和column_date一起作为一个键

独特(column_namecolumn_date),

【讨论】:

  • 谢谢,我现在就试试这个,我找了一个小时但没有运气,如果这个工作会在这里发帖
  • 不幸的是我无法添加主键=(我希望有一个解决方法
  • 我创建了一个新表,因为 sqlite 没有更改功能,所以基本上我创建了一个新表,但是当我使用 ADD PRIMARY KEY (col1,col2) 时出现错误,它说不能添加一个或多个主键
  • 当 _id 是主键时它不起作用。所以我所做的是创建表 mytable (_id INTEGER,name TEXT,date TEXT,PRIMARY KEY (name,date)) 可以吗_id 是否不是主键无关紧要?无论如何,谢谢您抽出宝贵的时间抱歉,由于声誉低,我无法投票..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-26
  • 1970-01-01
相关资源
最近更新 更多