`

Sqlite插入或更新

阅读更多
在数据库中我们经常会有这种需求,插入时,某条记录不存在则插入,存在则更新。或更新时,某条记录存在则更新,不存在则插入。比如:
人员信息数据库,某个身份证若已经存在,重复插入则更新,否则新增记录。
网页缓存数据库,某个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();
        }
    }
}


第二步:调用replace into语句
REPLACE INTO http_cache (url, content) VALUES ('http://www.baidu.com/', '<html></html>' );
java中可以
sQLiteDatabase.replace(DbConstants.HTTP_RESPONSE_TABLE_TABLE_NAME, null, contentValues)


更多见:http://www.trinea.cn/
分享到:
评论

相关推荐

    sqlite避免重复插入数据

    根据提供的文件信息,本文将详细解析如何在SQLite数据库中避免重复数据插入的问题,并结合实际应用场景进行探讨。 ### SQLite 数据库避免重复数据插入 在数据库管理中,确保数据的唯一性是非常重要的,特别是在...

    c# 对sqlite基本操作,带批量插入(百万级秒插)

    在本文中,我们将深入探讨如何使用C#进行SQLite的基本操作,特别是关注批量插入功能,这在处理大量数据时尤其有用,如标题所述,可以实现百万级数据的秒级插入。SQLite是一个轻量级的数据库引擎,它允许在无需服务器...

    C语言实现SQLite的批量插入及性能对比

    例如,可以先将所有要插入的数据存储到内存中的数组或结构体,然后一次性提交。在C语言中,这可能涉及到动态内存分配和字符串拼接,但总体上能减少与磁盘交互的次数,从而提高速度。 下面是一个简化的C语言示例,...

    Sqlite数据库里插入数据的条数上限是500

    今天在向Sqlite数据库里插入数据的时候,报了这样一个错: 代码如下: “too many terms in compound SELECT” 去Stackoverflow上查了一下,发现有人回答这个问题:链接 原来一次性向数据库里插入数据的条数不能太...

    xe6 sqlite小例子 可实现建表插入更新

    在这个"xe6 sqlite小例子 可实现建表插入更新"的示例中,我们将探讨如何在DelphiXE6环境下使用SQLite进行数据库操作,包括创建表、插入数据以及更新数据。 首先,我们需要了解DelphiXE6。这是Embarcadero公司开发的...

    SQLite的创建,插入和查询

    例如,`insert()`用于插入数据,`query()`用于查询数据,`update()`用于更新数据,`delete()`用于删除数据。 在`SQLiteActivity`中,我们可能会实现一个用于与SQLite交互的Activity,它可能包括打开数据库、创建表...

    JavaScript sqlite3 大数据量插入

    Node.js结合sqlite3模块实现Sqlite数据库建表并实现大数据量的快速插入

    sqlite高性能插入数据

    SQLite是一款轻量级的、开源的、自包含的数据库引擎,广泛应用于移动设备、嵌入式系统以及桌面应用。在处理大数据插入时,优化...TestSomething5可能是测试数据或脚本,用于验证和比较不同的插入方法对性能的影响。

    VB 6.0操作Sqlite数据库(查询、添加、更新、删除)

    在VB 6.0中操作SQLite数据库涉及到一系列的步骤和技术,包括连接数据库、执行SQL语句(查询、添加、更新和删除数据)以及处理结果。SQLite是一个轻量级的、自包含的数据库引擎,适用于各种应用程序,特别是那些需要...

    android sqlite 批量插入数据优化代码

    6. **考虑使用异步操作**:如果可能,使用线程或异步任务进行批量插入,以免阻塞主线程,提高用户体验。 7. **数据分批**:对于非常大的数据集,可以考虑分批插入,每次插入一部分数据,避免一次性加载全部数据导致...

    android中SQLite数据库中用insert同时插入多条记录的方法和效率比较

    Android 中 SQLite 数据库中用 insert 同时插入多条记录的方法和效率比较 在 Android 开发中,我们常会遇到这样一种情况:在建立一个 SQLite 数据库时,想同时插入大量数据。那么应该怎么做呢?下面我们将比较三种...

    C++插入SQLite数据库的BLOB字段

    在C++编程环境中,SQLite是一个轻量级...同时,为了提高效率,可以考虑使用事务来处理批量插入或更新操作。此外,如果你需要在程序运行时动态获取文件,可以替换文件读取部分,使其能够接收用户输入或从网络下载文件。

    sqlite3性能优化源代码 数据插入 开启事务 执行准备 性能提升 每秒百万条数据写入

    在本文中,我们将深入探讨如何通过优化SQLite3的源代码来提高数据插入性能,尤其是如何利用事务和执行准备来实现每秒百万条数据的写入速度。 首先,了解SQLite3的事务机制是至关重要的。在SQLite3中,事务用于确保...

    在Titanium中通过使用BEGIN/COMMIT来加速SQLite插入操作

    tracer2.js文件可能是用来追踪或记录数据库操作的辅助脚本,它可能包含了对数据库操作的监控或日志记录功能,例如记录每批插入操作的时间,以便分析性能提升。 在实际开发中,需要注意以下几点: 1. 错误处理:事务...

    sqlite数据库简单例程,创建插入清空删除

    在上述代码中,"test.db"是数据库文件名,`sqlite3_open()`函数尝试打开或创建这个文件。如果成功,它将返回一个数据库连接句柄(`db`);如果失败,`sqlite3_errmsg()`可以用来获取错误信息。 接着,我们可以创建...

    LabVIEW使用SQLite数据库范例(需要自行下载SQLite的工具包)

    这些函数包括`sqlite3_open`,用于打开或创建数据库,以及`sqlite3_exec`,用于执行SQL命令。例如,你可以编写一个VI来执行`CREATE TABLE`语句,定义数据库中的表结构。 在本例中,LabVIEW范例演示了如何创建表的...

    Sqlite 数据库文件更新机制

    在Sqlite中,数据更新主要包括插入、更新和删除记录。这些操作都会通过事务来实现,以保证数据的一致性。每条SQL语句默认在一个事务中执行,如果在事务内部发生错误,整个事务会被回滚,从而保持数据库的一致状态。...

    自动生成SQLite库,插入数据,注册,登陆

    onUpgrade()则在数据库升级时执行,可以用来修改表结构或更新数据。 接下来,我们创建数据库表。以用户信息为例,可以创建一个名为`users`的表,包含`id`(主键)、`username`和`password`等字段。在...

    asp.net core6 MVC+SQLite例子

    这个项目是在Visual Studio 2022环境下构建的,针对的是那些希望学习或更新.NET Core最新版本开发知识的人。 ASP.NET Core 6是一个跨平台的高性能开源框架,用于构建现代化、云就绪的Web应用。其主要改进包括: 1....

    sqliteodbc驱动sqlite3

    - 更新到最新版本的SQLiteODBC。 #### 六、总结 SQLiteODBC作为一种重要的数据库连接工具,在多种应用场景下都有着广泛的应用前景。无论是开发者还是数据库管理员,掌握其安装配置及使用方法都是非常必要的。通过...

Global site tag (gtag.js) - Google Analytics