数据插入
对于插入操作,我们的处理逻辑:
数据存在则略过,不存在则插入
方案1:
: 从数据库中查询该数据是否已存在;
if(不存在) then
: 向数据库中插入数据;
方案2:
使用 INSERT IGNORE
INSERT IGNORE INTO table(column_list)
VALUES( value_list),
( value_list),
...
优缺点比较:
- 方案1会产生2个sql,并发的时候,可能会导致插入相同的数据
- 使用方案2时,如果是批量插入,在处理期间发生错误时,insert ignore会忽略错误的行,将正确的插入到数据库中,善用此特点
数据更新
对于更新操作,我们的处理逻辑:
数据存在则更新,不存在则插入
方案1:
: 从数据库中查询该数据是否已存在;
if(存在) then
: 更新数据库中的数据;
else
: 向数据库中插入数据;
方案2:
使用 ON DUPLICATE KEY UPDATE
INSERT INTO t1 (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c=c+1, b=4;