希望这是一个非常简单的问题。
我有一个简单的 SELECT 查询(内置了一些子查询)。我有超过 40 个数据库,我需要对所有数据库(都具有相同的架构)运行此查询并将结果返回到一个大表中。
我正在想象一个循环序列(就像javascript的i=0; i
(我在 Navicat 工作,但这可能并不重要)
谢谢你!
如果有人需要有关如何进行跨数据库查询的更复杂的示例,这里有一个清理databasechangeloglock
每个拥有它的数据库上的表:
CREATE EXTENSION IF NOT EXISTS dblink;
DO
$$
DECLARE database_name TEXT;
DECLARE conn_template TEXT;
DECLARE conn_string TEXT;
DECLARE table_exists Boolean;
BEGIN
conn_template = 'user=myuser password=mypass dbname=';
FOR database_name IN
SELECT datname FROM pg_database
WHERE datistemplate = false
LOOP
conn_string = conn_template || database_name;
table_exists = (select table_exists_ from dblink(conn_string, '(select Count(*) > 0 from information_schema.tables where table_name = ''databasechangeloglock'')') as (table_exists_ Boolean));
IF table_exists THEN
perform dblink_exec(conn_string, 'delete from databasechangeloglock');
END IF;
END LOOP;
END
$$
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)