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 REPLACESQLite UPSERT – ON DUPLICATE KEY UPDATE

第一步:

新建唯一索引: CREATE UNIQUE INDEX mycolumn_index ON mytable (myclumn);

1

CREATE UNIQUE INDEX unique_index_url ON http_cache (url);

java中可以直接在SQLiteOpenHelper的OnCreate中添加

Java

1

2

3

4

5

6

7

8

9

10

11

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语句

1

REPLACE INTO http_cache (url, content) VALUES ('http://www.baidu.com/', '<html></html>' );

java中可以

Java

1

sQLiteDatabase.replace(DbConstants.HTTP_RESPONSE_TABLE_TABLE_NAME, null, contentValues)

目录
相关文章
|
15天前
|
人工智能 小程序 Java
【工具】轻松解锁SQLite数据库,一窥微信聊天记录小秘密
本文介绍了一款名为PyWxDump的开源工具,它可以获取微信账户信息、解密SQLite数据库以查看和备份聊天记录。此工具适用于已登录电脑版微信的用户,通过GitHub下载后简单几步即可操作。适合对数据恢复感兴趣的开发者,但请注意合法合规使用并尊重隐私。
134 2
【工具】轻松解锁SQLite数据库,一窥微信聊天记录小秘密
|
12天前
|
SQL 存储 小程序
【教程】navicat配合HTTP通道远程连接SQLite数据库
本文介绍了如何通过 Navicat Premium 工具配合 n_tunnel_sqlite.php 和 HTTP 通道远程连接服务器上的 SQLite 数据库。SQLite 是一种自给自足的、无服务器的 SQL 数据库引擎,由于其端口未对外开放,直接使用 Navicat 进行远程连接不可行。文章详细记录了使用 HTTP 通道实现远程连接的过程,包括定位本地 `ntunnel_sqlite.php` 文件,将其上传至服务器,并通过 Navicat 配置 HTTP 通道连接 SQLite 数据库的具体步骤。
14 0
【教程】navicat配合HTTP通道远程连接SQLite数据库
|
1月前
|
关系型数据库 Java MySQL
C#winform中使用SQLite数据库
C#winform中使用SQLite数据库
36 3
C#winform中使用SQLite数据库
|
21天前
|
Java 数据库连接 数据库
java系列之~如何给sqlite数据库添加表
这篇文章介绍了如何在Java中使用SQLite JDBC驱动来连接SQLite数据库,并提供了示例代码来演示如何创建一个新的数据库表。
|
22天前
|
SQL 存储 数据库
SQLite数据库
【8月更文挑战第21天】SQLite数据库
30 3
|
22天前
|
存储 数据库 数据库管理
SQLite数据库的备份
【8月更文挑战第20天】SQLite数据库的备份
86 1
|
2月前
|
SQL 数据库 数据库管理
SQLite数据库操作
【7月更文挑战第31天】SQLite数据库操作
20 6
|
19天前
|
SQL 关系型数据库 数据库
C语言与数据库:使用C语言操作SQLite等数据库。
C语言与数据库:使用C语言操作SQLite等数据库。
13 0
|
2月前
|
SQL 存储 PHP
PHP中使用SQLite数据库
SQLite是一种轻量级数据库引擎,数据以文件存储,支持SQL操作。PHP可连接SQLite执行CRUD操作。
|
2月前
|
SQL 存储 数据挖掘
深入了解SQLite3命令:小巧强大的数据库工具
SQLite3是轻量级数据库工具,适用于嵌入式设备和数据分析。它提供交互式shell,无需服务器,易于部署。常用命令如`.schema`显示表结构,`.mode`设置输出格式。示例包括创建数据库`mydatabase.db`,创建表`users`,插入数据并查询。注意动态类型系统、性能限制及SQL注入安全。适合轻量级数据存储和管理。