我有一个包含 2 列、一个数字 ID 和唯一文本的表。像这样创建:
String CREATE_MY_TABLE = "CREATE TABLE " + TABLE_TEST + "("
+ KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ KEY_FOO + " TEXT UNIQUE"
+ ")";
db.execSQL(CREATE_MY_TABLE);
我希望当我插入 KEY_FOO 值并且它已经在数据库中时,什么都不会发生。但我得到的是 id 总是递增的。没有插入新行,这很好,但 id 是自动递增的。
我正在做的插入如下:
db.insertWithOnConflict(TABLE_TEST , null, values, SQLiteDatabase.CONFLICT_NONE);
我试过了CONFLICT_IGNORE
,,,CONFLICT_ABORT
都CONFLICT_ROLLBACK
一样。
我需要这个的原因是因为其他表在这个 id 上有一个外键,因此如果 id 改变了,其他表就无处可去。
我怎么说让现有的条目保持不变?