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

标签 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)

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

最佳答案

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

关于Mysql 在重复键更新时插入,如果键不存在则删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29052134/

相关文章:

Mysql::错误:具有公共(public) Rails 关联的重复条目

mysql - 根据字符串匹配插入行

php - 关于转义用户提交的 html、javascript 和 PHP 内容的概述和流程图

java - 如果可能的话,如何将 MySQL 查询结果保存在 int 变量中

mysql - 比较2个不同的sql表在sql插入到新表中

mysql - 如何在eShop中使用ElasticSearch进行产品搜索(过滤)?

asp.net - 在数据绑定(bind)期间显示来自不同表的列

mysql - SQL:将两个查询组合成一个查询

mysql - PowerPoint幻灯片显示来自MySql数据库的数据?如何?

php - 从 53 个表返回 mysql 数据库的 p_id 和 t_id 记录?