安卓/ SQLite的。无法向列添加新值bacause logcat说该列不唯一,但我将其定义为唯一?

时间:2014-03-19 13:58:23

标签: android database unique

也许创建表格时遇到了一些问题,但我无法弄清楚。

android.database.sqlite.SQLiteConstraintException: column number is not unique (code 19)

String CREATE_SMSData_TABLE = "CREATE TABLE version3 ("
            + "id INTEGER PRIMARY KEY AUTOINCREMENT, "
            + "number TEXT NOT NULL UNIQUE )";
    db.execSQL(CREATE_SMSData_TABLE);

我的插入操作:

public void addData(SMSData data) {

SQLiteDatabase db = this.getWritableDatabase();

ContentValues values = new ContentValues();
values.put(KEY_NUMBER, data.getNumber());   

db.insert(TABLE_NAME, null, values); 
db.close();

}

1 个答案:

答案 0 :(得分:0)

您没有在"数字"中设置唯一值柱。每个插入物都是相同的。您已将列标记为UNIQUE,并尝试多次插入相同的值。

要么保证"数字"的唯一值。对于每个插入,在ContentValues中的列,或从表中删除UNIQUE约束。

编辑添加其他案例

...或者,我想,如果该值确实应该是唯一的,请捕获异常并采取适当的措施。