Mysql INSERT ... ON DUPLICATE KEY UPDATE 记录不存在时插入,存在更新

一个推荐菜品表中目前已有的四个字段:
id(主键,自增长)
shop_id
menu_id(判断记录是否存在的字段)
last_update
status
如果新插入的记录中字段menu_id是重复的,需要更新last_update和status
在使用insert ... on duplicate key update的时候,insert 操作会在UNIQUE index和PRIMARY KEY上判断value是否重复
顺便一提,如果使用navicat设置UNIQUE,表,右键->设计表->索引,如下所示:

navicat设置字段设置UNIQUE

SQL 文:

INSERT INTO t (
    shop_id,
    menu_id,
    last_update,
    status
)
VALUES
    (
        #{item.shopId}, #{item.menuId}, NOW(), '1'
    ) ON DUPLICATE KEY UPDATE
       status = '1',
       last_update = now()

对于目前的要求,上面的SQL文已经可以实现。
有关INSERT ... ON DUPLICATE KEY UPDATE 更详细的信息,参照Mysql官方文档:
INSERT ... ON DUPLICATE KEY UPDATE 文档

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容