Updating table from a view, error: table must be contained in source tables, but was not found
Updating table from a view, error: table must be contained in source tables, but was not found
我正在尝试从 Exaplus(使用 Lua 脚本语言)中的视图更新 table,但我不断收到相同的错误。
对 schema_1 table 的简单更新有效,但是当我尝试使用 schema_2 的视图更新 table 时,无论如何,我总是得到相同的错误我简化了很多代码。
table 和视图中的参数是相同的数据类型 (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
预期的结果是 table 正在更新,但是在 运行 这段代码后我得到以下错误:
[42000] UPDATE-target-table must be contained in source tables, but was not found [line 4, column 1]
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
我正在尝试从 Exaplus(使用 Lua 脚本语言)中的视图更新 table,但我不断收到相同的错误。
对 schema_1 table 的简单更新有效,但是当我尝试使用 schema_2 的视图更新 table 时,无论如何,我总是得到相同的错误我简化了很多代码。
table 和视图中的参数是相同的数据类型 (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
预期的结果是 table 正在更新,但是在 运行 这段代码后我得到以下错误:
[42000] UPDATE-target-table must be contained in source tables, but was not found [line 4, column 1]
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