0


mysql中实现没有数据则新增,存在则更新

MySQL插入数据时如果存在就更新,不存在就插入表格结构如下:

更新/插入数据

知道唯一索引的值

mysql语法支持数据存在更新,不存在插入。判断的依据是唯一索引的字段是否冲突,如果冲突,则执行更新操作;如果没有冲突,则执行插入操作。对于本文中的例子就是主键id、分组group_id和分卷序号fen_juan_xu_hao。
那么可以使用DUPLICATE、REPLACE INTO方式处理数据。

DUPLICATE
语法
INSERT INTO 表名(唯一索引列, 列2, 列3) VALUE(值1, 值2, 值3) ON DUPLICATE KEY UPDATE 列=值, 列=值
INSERT INTO file_temp (id, file_name, group_id, bucket_name, original, type, file_size,
                                          fen_juan_size,
                                          fen_juan_xu_hao, zhuang_tai, create_user, update_time, tenant_id)
        VALUES (1714455010759065613, /minio/file/ceShi/测试.zip, 00-001-0001, ceShi, 测试.zip, zip,
                117617757, 118062248, 0, '成功', 1, 2023-10-18 10:49:54, 2023-10-18 10:49:54)
ON DUPLICATE KEY UPDATE fen_juan_xu_hao= 1,update_time=current_timestamp();
REPLACE INTO
语法
REPLACE INTO 表名称(列1, 列2, 列3) VALUES(值1, 值2, 值3)
REPLACE INTO file_temp (id, file_name, group_id, bucket_name, original, type, file_size,
                                          fen_juan_size,
                                          fen_juan_xu_hao, zhuang_tai, create_user, update_time, tenant_id)
        VALUES (1714455010759065613, /minio/file/ceShi/测试.zip, 00-001-0001, ceShi, 测试.zip, zip,
                117617757, 118062248, 0, '成功', 1, 2023-10-18 10:49:54, 2023-10-18 10:49:54)

并不知道唯一索引的值,只想插入/更新符合某些条件的数据

如果不知道主键id的情况下,根据部分条件查找进行插入或更新数据,比如:类型是zip的和分卷序号为0的,但并不知道这条数据在或者不在,也不知道主键id的情况
插入语句

INSERT INTO file_temp (id, file_name, group_id, bucket_name, original, type, file_size,
                                          fen_juan_size,
                                          fen_juan_xu_hao, zhuang_tai, create_user, update_time, tenant_id)
        VALUES (1714455010759065613, /minio/file/ceShi/测试.zip, 00-001-0001, ceShi, 测试.zip, zip,
                117617757, 118062248, 0, '成功', 1, current_timestamp(), 2023-10-18 10:49:54)
from DUAL  
where not exists(select id from file_temp where type = '.zip' and fen_juan_xu_hao = 0); 
标签: java mysql sql

本文转载自: https://blog.csdn.net/weixin_58210065/article/details/133902826
版权归原作者 闲肆~_~ 所有, 如有侵权,请联系我们删除。

“mysql中实现没有数据则新增,存在则更新”的评论:

还没有评论