正文
包含postgresql查看其他数据库的表的词条
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
在postgresql中如何从数据库中检索出所有的表名
1、查看当前数据库中所有的模式。
2、如果想查看模式中所有的对象信息,可以通过\d 模式名.* 加上通配符的方式来进行查看。
3、在查看模式中的对象时一般使用的方式都是模式名.对象名的方式。
4、在postgresql中有一个类型于linux系统中$PATH的环境变量search_path,默认情况下它的值是当前数据库值和公共模式值。
5、如果想其它模式也添加在搜索路径中可通过如下命令来进行设置。
6、设置完成后如果我们再访问tec模式下的对象,就不需要再使用模式名.对象名的方式了,直接使用对象名即可进行操作。
postgresql查看数据库怎么查看指定的模式 数据表
可以使用pgAdminIII, 连接到数据库服务之后,展开数据库,就可以看到"模式",再展开模式,就可以看到此模式下的数据数据表,函数等对象了。
如何查PostgreSQL 数据库中所有的表
这个也是从
oid2name
中扒出来的:
[postgres@localhost
bin]$
./oid2name
-d
postgres
From
database
"postgres":
now:
SELECT
pg_catalog.pg_relation_filenode(c.oid)
as
"Filenode",
relname
as
"Table
Name"
FROM
pg_class
c
LEFT
JOIN
pg_catalog.pg_namespace
n
ON
n.oid
=
c.relnamespace
LEFT
JOIN
pg_catalog.pg_database
d
ON
d.datname
=
pg_catalog.current_database(),pg_catalog.pg_tablespace
t
WHERE
relkind
IN
('r')
AND
n.nspname
NOT
IN
('pg_catalog',
'information_schema')
AND
n.nspname
!~
'^pg_toast'
AND
t.oid
=
CASE
WHEN
reltablespace
THEN
reltablespace
ELSE
dattablespace
END
ORDER
BY
relname
Filenode
Table
Name
----------------------
24608
gaotab
24604
testtab
[postgres@localhost
bin]$
执行结果就是这样,这里没有用我给出的
postgres
数据库名
,而是用了
pg_catalog.current_database()
我把格式整理一下,并且把数据库名换成我想要的
’postgres‘,当然,如果有其他数据库,换其他的名字就可以了。
SELECT
pg_catalog.pg_relation_filenode(c.oid)
as
"Filenode",
relname
as
"Table
Name"
FROM
pg_class
c
LEFT
JOIN
pg_catalog.pg_namespace
n
ON
n.oid
=
c.relnamespace
LEFT
JOIN
pg_catalog.pg_database
d
ON
d.datname
=
'postgres',
pg_catalog.pg_tablespace
t
WHERE
relkind
IN
('r')
AND
n.nspname
NOT
IN
('pg_catalog',
'information_schema')
AND
n.nspname
!~
'^pg_toast'
AND
t.oid
=
CASE
WHEN
reltablespace
THEN
reltablespace
ELSE
dattablespace
END
ORDER
BY
relname
其实
t
是没有必要的,还可以再简化:
SELECT
pg_catalog.pg_relation_filenode(c.oid)
as
"Filenode",
relname
as
"Table
Name"
FROM
pg_class
c
LEFT
JOIN
pg_catalog.pg_namespace
n
ON
n.oid
=
c.relnamespace
LEFT
JOIN
pg_catalog.pg_database
d
ON
d.datname
=
'postgres'
WHERE
relkind
IN
('r')
AND
n.nspname
NOT
IN
('pg_catalog',
'information_schema')
AND
n.nspname
!~
'^pg_toast'
ORDER
BY
relname
如何查PostgreSQL 数据库中所有的表
这个也是从 oid2name 中扒出来的:
[postgres@localhost bin]$ ./oid2name -d postgres
From database "postgres":
now:
SELECT pg_catalog.pg_relation_filenode(c.oid) as "Filenode", relname as "Table Name" FROM pg_class c LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace LEFT JOIN pg_catalog.pg_database d ON d.datname = pg_catalog.current_database(),pg_catalog.pg_tablespace t WHERE relkind IN ('r') AND n.nspname NOT IN ('pg_catalog', 'information_schema') AND n.nspname !~ '^pg_toast' AND t.oid = CASE WHEN reltablespace 0 THEN reltablespace ELSE dattablespace END ORDER BY relname
Filenode Table Name
----------------------
24608 gaotab
24604 testtab
[postgres@localhost bin]$
执行结果就是这样,这里没有用我给出的 postgres 数据库名 ,而是用了 pg_catalog.current_database()
我把格式整理一下,并且把数据库名换成我想要的 ’postgres‘,当然,如果有其他数据库,换其他的名字就可以了。
SELECT
pg_catalog.pg_relation_filenode(c.oid) as "Filenode",
relname as "Table Name"
FROM
pg_class c
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
LEFT JOIN pg_catalog.pg_database d ON d.datname = 'postgres',
pg_catalog.pg_tablespace t
WHERE
relkind IN ('r')
AND n.nspname NOT IN ('pg_catalog', 'information_schema')
AND n.nspname !~ '^pg_toast'
AND t.oid = CASE WHEN reltablespace 0 THEN reltablespace ELSE dattablespace END
ORDER BY
relname
其实 t 是没有必要的,还可以再简化:
SELECT
pg_catalog.pg_relation_filenode(c.oid) as "Filenode",
relname as "Table Name"
FROM
pg_class c
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
LEFT JOIN pg_catalog.pg_database d ON d.datname = 'postgres'
WHERE
relkind IN ('r')
AND n.nspname NOT IN ('pg_catalog', 'information_schema')
AND n.nspname !~ '^pg_toast'
ORDER BY
relname
postgresql查看其他数据库的表的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、postgresql查看其他数据库的表的信息别忘了在本站进行查找喔。