sql - 对多个表执行查询

标签 sql postgresql automation postgis

我需要将以下查询应用于 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/

相关文章:

sql - 使用 GroupBy 从多对多中选择

php - Laravel/Postgres 数据库查询?

C# WebBrowser 控件 - 使用 InvokeMember ("Click"提交表单不工作)

sql - bigquery sql 中的文字和别名之间缺少空格

sql - 如果该月没有条目,如何选择该月的最后一天 SQL

sql - 将月份和年份字符串转换为日期的有效方法是什么?

postgresql - 在没有 foreach 的情况下循环遍历数组参数

performance - JMeter : How to record HTTPS traffic?

java - By.xpath(contains(text(), "Some text") 给出错误

python - django 查询集正则表达式给出额外的结果