2016-09-19 1 views
0

Прочтите перед тем, как сделать его Дубликат.Ограничение таблицы SQLite уникальное и значение ON CONFLICT REPLACE

Я пытаюсь вставить долготы и широты значения в SQLite таблице, и я хочу, чтобы это было уникальное значение, после некоторых исследований в том, что я нашел this и this ответы очень полезны, хотя оба они написаны для простых запросов и я не могу найти, как уместить мой запрос с обоими ограничениями уникальный и ON_CONFLICTION_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" + ")"; 

, но это уникальное не имеет каких-либо различий, неудобно ли использовать в моем случае ON_CONFLICTION_REPLACE?

От Aymananswer У меня получилось, что я могу применять уникальные по нескольким столбцам вместе, но я все равно получаю повторяющиеся значения после вставки. может ли кто-нибудь сделать соответствующий запрос из моего запроса и помочь мне понять все? Благодаря

+0

Вы ищете уникальное ограничение по широте и долготе в сочетании или отдельных уникальных ограничений для широту и долготу отдельно? –

+0

нет, я хочу, чтобы это было для обоих я имею в виду набор Long и Lat @Samuel – TapanHP

ответ

0

Изменение структуры таблицы в этом

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); 
+0

, но что такое проблема с простым способом вставки? Потому что после применения вашего запроса он все еще принимает повторяющиеся значения. – TapanHP

+0

Попробовали удалить существующий apk? Определение новой таблицы будет отражено только после воссоздания базы данных. –

+0

okay gotcha !! @Samuel – TapanHP

Смежные вопросы