更新表格来自视图,错误:表格必须包含在源表中,但未被找到

我在 Exaplus 中尝试从视图中更新表格(使用 Lua 脚本语言),但是我一直遇到相同的错误。

对于 schema_1 表格的简单更新有效,但是当我尝试使用从 schema_2 中的视图更新表格时,无论我简化多少代码,我都一直得到相同的错误。

表格和视图中的参数都是相同的数据类型(varchar(3))。 我已经确认这不是权限问题。

这是我正在运行的代码。

UPDATE schema_1.table1
SET table1_parameter = a.view_parameter
FROM schema_2.view_name AS a
WHERE table1_parameter_2 IS NOT NULL

预期结果是表格已被更新,但是运行这段代码后我得到了以下错误:

[42000] 更新目标表格必须包含在源表中,但未被找到 [line 4, column 1]
点赞
用户6593702
用户6593702

Table1 必须是你语句的一部分才能生效。否则的话 SQL 就不知道你的 view 中的哪一行应该与 table1 中的哪一行对齐。

UPDATE a1
SET table1_parameter = a.view_parameter
FROM schema_1.table1 AS a1
JOIN schema_2.view_name AS a
    ON a1.keyColumn = a.keyColumn
WHERE table1_parameter_2 IS NOT NULL
2019-06-13 08:45:51