繁体   English   中英

更新 MySQL 中表的多个唯一行的最佳方法是什么?

[英]What's the best way to update multiple unique rows of a table in MySQL?

我在 MySQL 表中有一个项目列表。 用户可以通过在 HTML 列表中上下拖动来订购这些物品。 然后我需要将每个项目 position 存储在列表中。

是否可以在一个 MySQL 调用中执行此操作,还是必须单独调用每个产品来设置自己的订单 ID?

单个调用看起来像这样:

UPDATE table_name SET `order` = order_number AND `product_id` = 'X';

好吧,您可以删除整个表格,然后为所有产品插入新的订单号。 这只是两种说法。 只要此表仅包含“订单”信息而没有其他关键数据,这将起作用。

您可以删除所有有问题的项目,如果没有其他数据会受到影响(CASCADE 和类似),则将它们重新插入。 那将是两个查询; 使用“WHERE product_id IN ('X', 'Y', ...)”删除,并使用每个项目的更新值插入。

一个干净的解决方案是在事务中执行 UPDATE,但由于 MySQL 不支持延迟约束检查,如果“订单”属性为 UNIQUE,则会出现问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM