mysql和postgresql不存在则插入操作

mysql:

ON DUPLICATE KEY UPDATE(不存在则插入,存在则更新)

mysql语法支持如果数据存在则更新,不存在则插入,首先判断数据存在还是不存在的那个字段要设置成unique索引。

语法:

INSERT INTO 表名(唯一索引列, 列2, 列3) VALUE(值1, 值2, 值3) ON DUPLICATE KEY UPDATE 列=值, 列=值

 

REPLACE INTO (不存在则插入,存在先删除,后插入)

REPLACE INTO 主要作用类似 INSERT 插入操作。主要的区别是 REPLACE INTO 会根据主键或者唯一索引检查数据是否存在,如果存在就先删除再更新。

语法:

REPLACE INTO 表名称(列1, 列2, 列3) VALUES(值1, 值2, 值3)

 

IGNORE

这个是根据插入表的主键和唯一索引去匹配的,如果当前插入的记录存在则跳过不插入。

示例:

INSERT IGNORE INTO `user` ('phone') VALUES ('18888888888’);

 

INSERT……SELECT……WHERE NOT EXISTS

NOTE:根据查询条件判断是否已经有对应的值,有的话跳过,没有的话执行插入,随便想查什么就查什么,这个用得最多。

 

PostgreSQL

INSERT ON CONFLICT do update set …..不存在则插入,存在则更新

insert into test values (1,'test',now()) on conflict (id) do update set info=excluded.info,crt_time=excluded.crt_time;

 

INSERT ON CONFLICT do nothing

不存在则插入,存在则直接返回(不做任何处理)

insert into test values (1,'hello digoal',now()) on conflict (id) do nothing;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奔跑的窝窝牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值