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

时间:2019-06-13 08:41:00

标签: sql lua exasolution

我正在尝试从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] UPDATE-target-table must be contained in source tables, but was not found [line 4, column 1]

1 个答案:

答案 0 :(得分:2)

Table1必须是您的声明的一部分才能起作用。在其他情况下,您需要join这两个表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