我需要将以下查询应用于 60 多个表:
UPDATE variable_table_name ab
SET elem_nr = ef.elem_nr
FROM ga_mit_elemnr ef
WHERE (ab.elem_nr NOT IN
(SELECT elem_nr
FROM strassenelemente cd)
OR ab.elem_nr IS NULL)
AND St_within(ab.geom, ef.geom)
有没有办法在 PostgreSQL 中自动执行此操作?
最佳答案
据我所知,在纯 SQL 中无法执行此操作,但是您可以使用 PL/pgSQL 在 for 循环中将查询作为动态命令执行,并对 60 多个表运行此查询。您可以在此处阅读有关 Pl/pgSQL 的信息:https://www.postgresql.org/docs/9.6/plpgsql.html
根据您的要求,您还可以使用其他编程语言(例如 Python)以字符串形式动态执行 SQL 语句。
关于sql - 对多个表执行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57357476/