Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android SQLite表约束唯一且冲突替换使用_Android_Sqlite_Android Sqlite_Unique Constraint - Fatal编程技术网

Android SQLite表约束唯一且冲突替换使用

Android SQLite表约束唯一且冲突替换使用,android,sqlite,android-sqlite,unique-constraint,Android,Sqlite,Android Sqlite,Unique Constraint,复制前请先阅读。 我试图在SQLite表中插入经度和纬度值,我希望它是唯一的值,经过一些研究,我发现并回答了非常有用的问题,虽然它们都是为简单的查询编写的,但我无法找到如何使我的查询同时满足约束条件unique和ON\u CONFLICTION\u REPLACE 问题如下: private static final String CREATE_USER_TABLE = "CREATE TABLE IF NOT EXISTS " + TABLE_LOCATIONS + "("

复制前请先阅读。

我试图在SQLite表中插入经度和纬度值,我希望它是唯一的值,经过一些研究,我发现并回答了非常有用的问题,虽然它们都是为简单的查询编写的,但我无法找到如何使我的查询同时满足约束条件uniqueON\u CONFLICTION\u REPLACE

问题如下:

 private static final String CREATE_USER_TABLE = "CREATE TABLE IF NOT EXISTS " + TABLE_LOCATIONS + "("
                + UID + " TEXT PRIMARY KEY," + ADDRESS + " TEXT,"
                + LONGITUDE + " TEXT unique," + LATITUDE + " TEXT unique" + ")";
但这种独特性并没有造成任何区别,在我的案例中,是不是强制在冲突上使用
\u REPLACE


从中,我可以在多个列上同时应用unique,但插入后仍然会得到重复的值。有人能从我的疑问中提出适当的疑问并帮助我理解所有事情吗?谢谢

将您的表格结构更改为此

private static final String CREATE_USER_TABLE = "CREATE TABLE IF NOT EXISTS " + TABLE_LOCATIONS + "("
            + UID + " TEXT PRIMARY KEY," + ADDRESS + " TEXT,"
            + LONGITUDE + " TEXT," + LATITUDE + " TEXT,
            UNIQUE(" + LOGITUDE + "," + LATITUDE + ") ON CONFLICT REPLACE)";
然后,在执行插入操作时,请使用以下方法

ContentValues insertValues = new ContentValues();
insertValues.put(LATITUDE, latitude);
insertValues.put(LOGITUDE, longitude);
db.insertWithOnConflict(TABLE_LOCATIONS, null, insertValues, SQLiteDatabase.CONFLICT_REPLACE);

您是在寻找纬度和经度组合的唯一约束,还是单独寻找纬度和经度的唯一约束?不,我想要它,我是指Long和Lat@Samuelbut的集合,但简单插入方法有什么问题?因为在应用您的查询后,它仍然会使用重复的值。是否尝试卸载现有的apk?只有在重新创建数据库后,新表定义才会反映出来。否仍然不起作用我总是从db.insert METHOL@SAMUELROBERRTC获取long的增量行值。是否可以发布insert函数?让我们来看看。