首页 > 解决方案 > SQLite 如果存在现有数据跳过或覆盖

问题描述

我的 sqlite 中有一些 x,y 坐标,但是当我添加新数据时,我想检查数据以及是否有相同的数据覆盖或跳过它。坐标自动来自另一种方法。

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();
}

标签: javaandroidsqlsqlite

解决方案


如果表有主键,则使用 INSERT OR REPLACE,

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

如果表没有主键,则修复它。


推荐阅读