首页 > 解决方案 > SQLite如何覆盖相同的数据

问题描述

我正在开发一个android项目,basicli我的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();


}

标签: javaandroidsqlite

解决方案


SQLite 有一个 INSERT OR REPLACE 语句,可以缩短为 REPLACE,如果它不存在,它将插入一个新行,或者如果它存在则替换(删除然后插入)一个行。阅读文档以了解主键约束以及如何处理它们。

REPLACE INTO positions (title, min_salary)
VALUES
 ('Full Stack Developer', 140000);

推荐阅读