gpt4 book ai didi

mysql - 将值从一列复制到另一列并设置为 NULL - MySQL

转载 作者:行者123 更新时间:2023-11-29 01:26:44 24 4
gpt4 key购买 nike

在某些情况下,我必须将值从一列复制到另一列并将第一个设置为 NULL。此 SQL 语句按预期工作:

UPDATE lessons SET order_id_old = order_id, order_id = NULL WHERE id = 1

但我不确定这样做是否正确。还是我应该为此目的更好地使用 2 个查询?

UPDATE lessons SET order_id_old = order_id WHERE id = 1;
UPDATE lessons SET order_id = NULL WHERE id = 1;

最佳答案

我肯定会选择第二种方法。这是 documentation 的内容说:

Single-table UPDATE assignments are generally evaluated from left to right. For multiple-table updates, there is no guarantee that assignments are carried out in any particular order.

对于您的情况,目前没有问题,因为只有一张 table 。但是,将来,如果有人修改此语句并添加一个新的 table/join(假设它会像对一个 table 那样正常工作>) 它会停止工作/给出不一致的结果。

因此,出于可读性/可维护性的目的,继续使用第二种方法。 (此外,我建议将 update 语句包装到 transaction 中以保留 atomicity )

关于mysql - 将值从一列复制到另一列并设置为 NULL - MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41946685/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com