SQLite, как перезаписать одни и те же данные - PullRequest
1 голос
/ 23 апреля 2019

Я работаю над проектом Android, в основном у меня есть некоторые координаты x, y в моем sqlite, но когда я добавляю новые данные, я хочу проверить данные, и если есть те же данные, перезаписать их.

public void DBCreate(){
    SQLITEDATABASE = openOrCreateDatabase("LatLongDatabase", Context.MODE_PRIVATE, null);
    SQLITEDATABASE.execSQL("CREATE TABLE IF NOT EXISTS myTable(id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, mCurrentLocationLAT VARCHAR,mCurrentLocationLONG VARCHAR);");
}

public void SubmitData2SQLiteDB(){


        SQLiteQuery = "INSERT INTO myTable (mCurrentLocationLAT, mCurrentLocationLONG) VALUES('"+mCurrentLocation.getLatitude()+"','"+mCurrentLocation.getLongitude()+"');";
        SQLITEDATABASE.execSQL(SQLiteQuery);

        Toast.makeText(CampaignActivity.this,"OK", Toast.LENGTH_LONG).show();


}

Ответы [ 2 ]

0 голосов
/ 23 апреля 2019

SQLite имеет оператор INSERT OR REPLACE, который можно сократить только до REPLACE, который будет вставлять новую строку, если она не существует, или заменять (удалять, а затем вставлять) строку, если она существует.Прочитайте документы, чтобы узнать об ограничениях первичного ключа и о том, как их обработать.

REPLACE INTO positions (title, min_salary)
VALUES
 ('Full Stack Developer', 140000);
0 голосов
/ 23 апреля 2019

Вам необходимо использовать запрос UPDATE, чтобы обновить строку с PRIMARY_KEY, если данные существуют, или INSERT новая строка.

Поскольку ваша таблица имеет PRIMARY_KEY как id, вы можете проверить, существует ли строка, как показано ниже.

SELECT EXISTS(SELECT 1 FROM myTable WHERE id='ROW_ID');

Если указанный выше запрос возвращает 1, значит, данные существуют, и вам нужно использовать запрос UPDATE, как показано ниже, в противном случае используйте запрос INSERT.

UPDATE myTable SET mCurrentLocationLAT=value1, mCurrentLocationLONG=value2 WHERE id='ROW_ID';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...