一個(gè)推薦菜品表中目前已有的四個(gè)字段:
id(主鍵,自增長)
shop_id
menu_id(判斷記錄是否存在的字段)
last_update
status
如果新插入的記錄中字段menu_id是重復(fù)的,需要更新last_update和status
在使用insert ... on duplicate key update的時(shí)候忆畅,insert 操作會(huì)在UNIQUE index和PRIMARY KEY上判斷value是否重復(fù)
順便一提犁功,如果使用navicat設(shè)置UNIQUE,表,右鍵->設(shè)計(jì)表->索引氓轰,如下所示:
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()
對(duì)于目前的要求,上面的SQL文已經(jīng)可以實(shí)現(xiàn)浸卦。
有關(guān)INSERT ... ON DUPLICATE KEY UPDATE 更詳細(xì)的信息署鸡,參照Mysql官方文檔:
INSERT ... ON DUPLICATE KEY UPDATE 文檔