Sqlite插入或更新
16lz
2021-01-22
在数据库中我们经常会有这种需求,插入时,某条记录不存在则插入,存在则更新。或更新时,某条记录存在则更新,不存在则插入。比如:
人员信息数据库,某个身份证若已经存在,重复插入则更新,否则新增记录。
网页缓存数据库,某个url已经存在,重复插入则更新,否则新增记录。
在mysql中可以使用replace into或是insert into …. on duplicate key update实现。在sqlite中我们同样可以使用replace into实现。分为两步,下面以http cache表为例,仅包含三个字段,主键_id, url, content
第一步:新建唯一索引: CREATE UNIQUE INDEX mycolumn_index ON mytable (myclumn);
CREATE UNIQUE INDEX unique_index_url ON http_cache (url);
java中可以直接在SQLiteOpenHelper的OnCreate中添加
public class DbHelper extends SQLiteOpenHelper { public void onCreate(SQLiteDatabase db) { db.beginTransaction(); try { db.execSQL(DbConstants.CREATE_HTTP_RESPONSE_TABLE_UNIQUE_INDEX.toString()); db.setTransactionSuccessful(); } finally { db.endTransaction(); } } }
更多相关文章
- 我的MSSQL2000数据库自从我的系统从XPHOME升级到XPP版以后表都打
- SQL2000数据库脱机/只读/紧急模式 修复
- 十万火急!如何远程复制sql2000数据库
- 谁能给我讲讲用C#在windows mobile上开发sql server 2005 mobile
- 怎么判断连接SqlServer数据库成功
- 像Farmville这样的在线游戏使用什么数据库?
- 数据库不支持中文解决方案(mysql)
- SQL SERVER 2005 数据库对比工具,并自动生成更新SQL脚本
- C# 往SQL数据库插入listbox的值