一、说明
遇到需要批量插入和修改数据库的情况:
如果该条数据不存在,则进行插入操作;否则如果存在,则进行更新操作。
使用INSERT OR REPLACE
命令即可满足需求
语句规范INSERT OR REPLACE INTO table-name (column-name,...) VALUES (column-value,...)
二、具体操作
1、创建UNIQUE
约束
UNIQUE
约束: 唯一约束,防止在一个特定的列存在两个记录具有相同的值
UNIQUE
和 PRIMARY KEY
约束有什么异同点?
相同点:PRIMARY KEY
也是UNIQUE
,即不可重复
不同点:
PRIMARY KEY
是非空的,但是UNIQUE
可以为空
只能有一个主键,但是唯一索引可以有多个
如果没有指定聚合索引,那么主键默认为聚合索引,唯一索引不具备该特性
CREATE TABLE COMPANY( ID INT PRIMARY KEY, NAME TEXT NOT NULL UNIQUE, AGE INT NOT NULL);
ID
和NAME
都是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