我在 SO 和 google 上都搜索过这些信息,但没有找到任何权威的答案。
当您有如下更新语句时:
UPDATE table SET rowA = rowB, rowB = NULL ...
看起来:
- 排序不重要 (
UPDATE table SET rowB = NULL, rowA = rowB
) - 尽管如此,结果是 rowA 获取 rowB 中的 prev 值,因为 UPDATE 似乎首先读取先前的值,然后更新它们。
我想知道上述两点对于 SQL 是否普遍适用,即它们是否是SQL UPDATE 语义的一部分,它们是否在标准中,或者它是否是一个实现细节(因此可能会发生变化)。谢谢!
编辑:让我强调我想要一个“权威”的答案;我已经对一些 SQL 实现进行了测试,这些行为确实是这里描述的行为。我需要的是一个“证明”,证明这实际上是在 SQL 标准/规范/UPDATE 的语义中,并带有指向该标准的链接,或者是一个代理可靠来源(MSDN、dev.mysql.com、Oracle 或 PostgreSQL文档,...)