zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

Sqlite插入或更新

SQLite 更新 插入
2023-09-14 08:56:52 时间

本文主要介绍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);


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 因为业务的原因,一张表的数据需要整合两张外键关联不强的表数据,这里涉及到更新部分字段或者插入新数据。