如果密钥不存在,则在重复密钥更新时插入Mysql并删除

时间:2015-03-14 17:44:08

标签: mysql

给出这两个问题:

INSERT INTO table1 (id,name,units,price,category_id) 
VALUES 
    (1,'name1', 'units1', 'price1', 6)
    (2,'name2', 'units2', 'price2', 6)
    (3,'name3', 'units3', 'price3', 6)
    (4,'name4', 'units4', 'price4', 6)
ON DUPLICATE KEY UPDATE 
    product_name=VALUES(name), 
    units=VALUES(units), 
    price=VALUES(price)

DELETE FROM table1 WHERE category_id = 6 AND id NOT IN(2,4)

有没有办法将这两个查询合并为一个查询?

1 个答案:

答案 0 :(得分:2)

你不能,但你可以将它们放在一个交易上。 事务意味着如果其中一个命令失败,则所有命令都不会提交。 只有当所有命令都通过时,它们才会提交。