update和insert...on duplicate key

2021-08-17  本文已影响0人  韩小禹

记录工作中根据sql返回值执行逻辑时遇到的问题。

hotspot_rural_mf_1> update rural_fans_0 set status=200 where rural_id=1 and uid=103
[2021-08-17 14:00:24] 1 row affected in 61 ms
/* 记录不存在时 */
hotspot_rural_mf_1> insert into rural_fans_0 (`rural_id`,`uid`,`status`) values(1,104,200) on duplicate key update `status`= 200,`update_time`=now(3)
[2021-08-17 14:13:55] 1 row affected in 18 ms

/* 记录已存在时 */
hotspot_rural_mf_1> insert into rural_fans_0 (`rural_id`,`uid`,`status`) values(1,104,200) on duplicate key update `status`= 200,`update_time`=now(3)
[2021-08-17 14:14:07] 2 rows affected in 43 ms

注意

/* 记录已存在,但快速连续执行多次时 */
hotspot_rural_mf_1> insert into rural_fans_0 (`rural_id`,`uid`,`status`) values(1,103,200) on duplicate key update `status`= 200,`update_time`=now(3)
[2021-08-17 14:18:07] 2 rows affected in 15 ms

hotspot_rural_mf_1> insert into rural_fans_0 (`rural_id`,`uid`,`status`) values(1,103,200) on duplicate key update `status`= 200,`update_time`=now(3)
[2021-08-17 14:18:08] 1 row affected in 26 ms

alter table rural_fans_0 modify `update_time` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3) COMMENT '更新时间'


/* 修改字段定义后重新测试 */
/* 快速连续执行多次的返回值都是对的 */

hotspot_rural_mf_1> insert into rural_fans_0 (`rural_id`,`uid`,`status`) values(1,103,200) on duplicate key update `status`= 200,`update_time`=now(3)
[2021-08-17 14:25:12] 2 rows affected in 43 ms
hotspot_rural_mf_1> insert into rural_fans_0 (`rural_id`,`uid`,`status`) values(1,103,200) on duplicate key update `status`= 200,`update_time`=now(3)
[2021-08-17 14:25:13] 2 rows affected in 15 ms
hotspot_rural_mf_1> insert into rural_fans_0 (`rural_id`,`uid`,`status`) values(1,103,200) on duplicate key update `status`= 200,`update_time`=now(3)
[2021-08-17 14:25:13] 2 rows affected in 16 ms
hotspot_rural_mf_1> insert into rural_fans_0 (`rural_id`,`uid`,`status`) values(1,103,200) on duplicate key update `status`= 200,`update_time`=now(3)
[2021-08-17 14:25:14] 2 rows affected in 12 ms
hotspot_rural_mf_1> insert into rural_fans_0 (`rural_id`,`uid`,`status`) values(1,103,200) on duplicate key update `status`= 200,`update_time`=now(3)
[2021-08-17 14:25:14] 2 rows affected in 10 ms
hotspot_rural_mf_1> insert into rural_fans_0 (`rural_id`,`uid`,`status`) values(1,103,200) on duplicate key update `status`= 200,`update_time`=now(3)
[2021-08-17 14:25:15] 2 rows affected in 14 ms
hotspot_rural_mf_1> insert into rural_fans_0 (`rural_id`,`uid`,`status`) values(1,103,200) on duplicate key update `status`= 200,`update_time`=now(3)
[2021-08-17 14:25:15] 2 rows affected in 11 ms

上一篇 下一篇

猜你喜欢

热点阅读