SQLite, если есть существующие данные, пропустить или перезаписать - PullRequest
0 голосов
/ 24 апреля 2019

У меня есть некоторые координаты 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 ]

1 голос
/ 24 апреля 2019

если в таблице есть первичный ключ, используйте INSERT OR REPLACE,

INSERT OR REPLACE INTO myTable (id, mCurrentLocationLAT, mCurrentLocationLONG) VALUES(1, :lat, :long)

, а если в таблице нет первичного ключа, исправьте это.

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

Выстроенный код, подобный этому, создал новую таблицу, но теперь она всегда перезаписывается.

 public void DBCreate(){
    SQLITEDATABASE = openOrCreateDatabase("LatLongDatabase", Context.MODE_PRIVATE, null);
    SQLITEDATABASE.execSQL("CREATE TABLE IF NOT EXISTS myTable43(id INTEGER PRIMARY KEY AUTOINCREMENT, FAVCurrentLocationLAT VARCHAR,FAVCurrentLocationLONG VARCHAR);");
}
public void SubmitData2SQLiteDB(){
    SQLiteQuery = "INSERT OR REPLACE  INTO myTable43(id, FAVCurrentLocationLAT, FAVCurrentLocationLONG) VALUES(1, '"+mCurrentLocation.getLatitude()+"','"+mCurrentLocation.getLongitude()+"');";
        SQLITEDATABASE.execSQL(SQLiteQuery);
        Toast.makeText(CampaignActivity.this,"OK", Toast.LENGTH_LONG).show();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...