0

我正在尝试从 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]
4

1 回答 1

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
于 2019-06-13T08:45:51.413 回答