Sqlite插入或更新
本文主要介绍Sqlite如何实现插入或更新。
在数据库中我们经常会有这种需求,插入时,某条记录不存在则插入,存在则更新。或更新时,某条记录存在则更新,不存在则插入。比如:
人员信息数据库,某个身份证若已经存在,重复插入则更新,否则新增记录。
网页缓存数据库,某个url已经存在,重复插入则更新,否则新增记录。
在mysql中可以使用replace into或是insert into …. on duplicate key update实现。在sqlite中我们同样使用replace into实现。分为两步,下面以http cache表为例,仅包含三个字段,主键_id, url, content
PS:根据 @MARRBOT 的反馈测试了下, replace into 在表中有数据会先删除整条,再插入要更新的数据,所以主键 id 会变,如果需要 id 不变的还是 insert 和 update 联合,可参考:SQLite – UPSERT *not* INSERT or REPLACE 或 SQLite UPSERT – ON DUPLICATE KEY UPDATE
第一步:
新建唯一索引: CREATE UNIQUE INDEX mycolumn_index ON mytable (myclumn);
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();
}
}
}
REPLACE INTO http_cache (url, content) VALUES (http://www.baidu.com/, html /html );
sQLiteDatabase.replace(DbConstants.HTTP_RESPONSE_TABLE_TABLE_NAME, null, contentValues)
玩转SQLite4:SQLite数据插入与查看 之前两篇文章,介绍了**命令行**和**图形化**的方式进行**数据库的创建**和**表的创建**,相当于创建了一个框架,还没有具体数据,本篇就来介绍如何将数据添加到数据库的表中,以及如何查看表中的数据。 同样,本篇继续使用**命令行**和**图形化**两种方式进行操作。
SQL更新部分字段或者插入新数据 SQL更新部分字段或者插入新数据http://www.bieryun.com/3184.html 因为业务的原因,一张表的数据需要整合两张外键关联不强的表数据,这里涉及到更新部分字段或者插入新数据。
相关文章
- 偏偏firefox+SQLite Manager插件
- Ubuntu系统下安装SQLite Browser教程[通俗易懂]
- SQLite数据库中文乱码处理「建议收藏」
- 微信为什么使用 SQLite 保存聊天记录?
- android sqlite 判断表和表中字段是否存在方法
- 【Android 逆向】使用 DB Browser 查看并修改 SQLite 数据库 ( 从 Android 应用数据目录中拷贝数据库文件 | 使用 DB Browser 工具查看数据块文件 )
- 如何使用Python操作SQLite详解编程语言
- 开源数据库 PostgreSQL、MariaDB 和 SQLite 的对比
- MySQL到SQLite转换:一步到位(mysql转sqlite)
- MySQL和SQLite:两种数据库技术比较(mysql和sqlite)
- 从SQLite到MSSQL:轻松实现数据迁移(sqlite转mssql)
- 使用SQLite和Redis提升系统性能(sqlite redis)
- SQLite速度评测代码
- 保护你的Sqlite数据库(SQLite数据库安全秘籍)
- 保护你的Sqlite数据库(SQLite数据库安全秘籍)
- 解析SQLite中的常见问题与总结详解
- SQLite入门教程四增删改查有讲究
- Android中的SQL查询语句LIKE绑定参数问题解决办法(sqlite数据库)
- C#实现Excel导入sqlite的方法