java - 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();
}
解决方案
SQLite 有一个 INSERT OR REPLACE 语句,可以缩短为 REPLACE,如果它不存在,它将插入一个新行,或者如果它存在则替换(删除然后插入)一个行。阅读文档以了解主键约束以及如何处理它们。
REPLACE INTO positions (title, min_salary)
VALUES
('Full Stack Developer', 140000);
推荐阅读
- jenkins - Jenkins 的 Artifactory 插件 - 脚本化管道中的 NPM 安装失败
- azure - ASPNETZERO:模拟在 AZURE 中不起作用
- sql-server - 在包含顶级 UNION 运算符的语句中不允许变量赋值
- bash - “有停止的工作”怎么样。实施的?
- oracle - 表正在变异,触发器/函数可能看不到它;需要后/行级查询
- react-native - 有没有办法从源 uri 下载质量较低的图像?
- typescript - 无法从过滤类型中删除具有从不的属性以获取剩余键
- node.js - 从 aws cli 获取单行 json
- html - 在angular6中使用查询字符串重定向到不同模块上的不同页面
- r - R plotly scatterpolar 图表气泡丢失