在 PostgreSQL 11 中,以下表达式
UPDATE test_table SET ("column_a","column_b") = ('value-a','value-b') WHERE "column_a" = 'value-c'
Run Code Online (Sandbox Code Playgroud)
被接受并执行更新。
但是对于单个列/值,例如
UPDATE test_table SET ("column_a") = ('value-a') WHERE "column_a" = 'value-c'
Run Code Online (Sandbox Code Playgroud)
它给出了一个错误。ROW必须提供,例如
UPDATE test_table SET ("column_a") = ROW ('value-a') WHERE "column_a" = 'value-c'
Run Code Online (Sandbox Code Playgroud)
有没有解释为什么选择这种行为?如果ROW缺少,是否有歧义?