【发布时间】:2016-01-05 04:41:10
【问题描述】:
考虑在一个查询中更新表 A 和 B 的示例,其中 A.Column1 设置为 B.Column2(值“DEF”),然后 B.Column2 设置为值“XYZ”。是否始终保证分配顺序,以便 A.Column1 的值为“DEF”而不是“XYZ”?
SQL 示例:
UPDATE TableA a
JOIN TableB b ON b.Column0 = a.Column0
SET
a.Column1 = b.Column2, -- Original value: "DEF"
b.Column2 = 'XYZ'
WHERE a.Column0 = 123;
SELECT Column1 FROM TableA WHERE Column0 = 123; -- DEF or XYZ?
【问题讨论】:
-
在 MySQL 中,您可能需要更新前触发器以使此行为在多表连接中可靠。
标签: mysql join sql-update