好久没回来了,最近太忙了,不是因为双十一,而是因为复杂的业务加上基建的落后造成了精神和身体焦虑内耗。
这些日子,深刻的感悟到一个结果,就是上班真的没时间学习,加班是个内耗的事情。所以从工作中脱离才是实现个体的最佳方式。
为了节约您的时间,现总结下文章内容。不需要可直接绕过。嘿哈
文章内容:INSERT … ON DUPLICATE KEY UPDATE 的使用。
图:2018年拍摄于杭州西溪湿地河渚街附近的波斯菊
研发场景:
那现在有一张table表,
其中主键 `primary key 是 string :user_id和date:data_time 两个字段,
还有其他字段。我需要往这张表写中间数据,如何做到 saveOrUpdate操作呢? 即不存在即插入,存在即更新呢?
杀鸡刀-实战
传统意义上来讲是先查出来,判断记录是否存在,再进行新增或更新操作,如何一步到位呢,我就不想先查出来,假设几百万条数据 查个dei啊
牛刀-实战:
在该实际场景中,使用 INSERT ... ON DUPLICATE KEY UPDATE
语句是非常适合的。它可以在 MySQL 中实现不存在即插入,存在即更新的功能。假设你的表 table
的主键由 user_id
和 data_time
组成,下面是实现的方式。
示例 SQL 语句
INSERT INTO `table` (user_id, data_time, field1, field2, field3)
VALUES
('userid_1', '2024-11-27 15:00:00', 10, 20, 30)
ON DUPLICATE KEY UPDATE
field1 = VALUES(field1),
field2 = VALUES(field2),
field3 = VALUES(field3);
说明:
INSERT INTO
部分- 将要插入的数据列出。
ON DUPLICATE KEY UPDATE
部分- 如果主键 (
user_id
,data_time
) 已存在,则更新指定字段。 VALUES(fieldX)
表示用本次插入的值来更新字段。
- 如果主键 (