SQLite: INSERT OR REPLACE

本文介绍了如何使用INSERTORREPLACE命令在数据库中高效地处理数据,通过创建UNIQUE约束实现插入新数据或更新现有数据。实例演示了如何在带有唯一约束的表中插入或更新,同时解释了UNIQUE和PRIMARY KEY的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、说明

遇到需要批量插入和修改数据库的情况:

如果该条数据不存在,则进行插入操作;否则如果存在,则进行更新操作。

使用INSERT OR REPLACE命令即可满足需求

语句规范INSERT OR REPLACE INTO table-name (column-name,...) VALUES (column-value,...)

二、具体操作

1、创建UNIQUE约束

UNIQUE约束: 唯一约束,防止在一个特定的列存在两个记录具有相同的值

UNIQUEPRIMARY KEY约束有什么异同点?

相同点:
PRIMARY KEY也是UNIQUE,即不可重复

不同点:

PRIMARY KEY是非空的,但是UNIQUE可以为空
只能有一个主键,但是唯一索引可以有多个
如果没有指定聚合索引,那么主键默认为聚合索引,唯一索引不具备该特性

CREATE TABLE COMPANY( ID INT PRIMARY KEY, NAME TEXT NOT NULL UNIQUE, AGE INT NOT NULL);

 IDNAME都是UNIQUE的,所以命令只有在两个值都不存在时,才会进行插入,否则更新当前数据

//表为空时,不存在则插入
INSERT OR REPLACE INTO COMPANY (ID, NAME, AGE) VALUES (1, 'Rose', 18);
//存在则更新
//并全部覆盖(如果某个字段为空,则该字段的值为0或NULL)
INSERT OR REPLACE INTO COMPANY (ID, NAME, AGE,ADDRESS) VALUES (1, 'Rose', 19);



参考链接:https://www.jianshu.com/p/bfa617a0b9b1

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值