使用postgres我写了一个查询来列出数据库中的表
SELECT table_name
FROM information_schema.tables
WHERE table_type = 'BASE TABLE'
AND table_schema NOT IN
('pg_catalog', 'information_schema');
查询返回错误数据库的结果。它会自动从postgres中的数据库列表中选择第一个数据库。
如何指定要查询的数据库? ' j220190_data'是要查询的数据库
我尝试过这样的事情:
SELECT table_name
FROM information_schema.tables
WHERE Databases = 'j220190_data'
AND table_schema NOT IN
('pg_catalog', 'information_schema');
SELECT table_name
FROM information_schema.tables
WHERE table_type = 'BASE TABLE' AND
WHERE Databases = 'j220190_data'
AND table_schema NOT IN
('pg_catalog', 'information_schema');
答案 0 :(得分:0)
连接到postgres时选择数据库;
例如:
psql mydb
并且在您发布选择之后,因为当您尝试使用此选择时,postgres会检查默认数据库。
答案 1 :(得分:0)
如果我理解正确,您可以使用dblink()
查询其他数据库。
创建扩展程序CREATE EXTENSION dblink;
SELECT tbl.*
FROM dblink('dbname=DB1 port=5432
host=localhost user=usr password=123', 'SELECT table_name
FROM information_schema.tables
WHERE table_type = ''BASE TABLE''
AND table_schema NOT IN(''pg_catalog'', ''information_schema'');')
AS tbl(table_name varchar(30));