在PostgreSQL中显示表(来自MySQL)的等价物是什么?
当前回答
作为一个快速的oneliner
# just list all the postgres tables sorted in the terminal
db='my_db_name'
clear;psql -d $db -t -c '\dt'|cut -c 11-|perl -ne 's/^([a-z_0-9]*)( )(.*)/$1/; print'
或者如果您更喜欢更清晰的json输出多行:
IFS='' read -r -d '' sql_code <<"EOF_CODE"
select array_to_json(array_agg(row_to_json(t))) from (
SELECT table_catalog,table_schema,table_name
FROM information_schema.tables
ORDER BY table_schema,table_name ) t
EOF_CODE
psql -d postgres -t -q -c "$sql_code"|jq
其他回答
首先,您必须连接数据库
我的数据库是ubuntu
使用此命令连接
\c ubuntu
此消息将显示
您现在以用户“postgres”的身份连接到数据库“ubuntu”
Now
运行此命令以显示其中的所有表
\d+
(为完整起见)
您还可以查询(SQL标准)信息架构:
SELECT
table_schema || '.' || table_name
FROM
information_schema.tables
WHERE
table_type = 'BASE TABLE'
AND
table_schema NOT IN ('pg_catalog', 'information_schema');
如果您只想查看已创建的表列表,可以只说:
\dt
但我们也有PATTERN,它将帮助您定制要显示的表。要显示包括pg_catalog架构在内的所有架构,可以添加*。
\时间*
如果您这样做:\?
\dt[S+][PATTERN]列表表
\dt将列出表,\pset pager off将在同一窗口中显示它们,而不切换到单独的窗口。喜欢dbshell中的那个功能。
如果您在PostgreSQL中使用pgAdmin4,可以使用它来显示数据库中的表:
select * from information_schema.tables where table_schema='public';
推荐文章
- PostgreSQL删除所有内容
- 为什么PostgreSQL要对索引列进行顺序扫描?
- PostgreSQL INSERT ON冲突更新(upsert)使用所有排除的值
- 如何检查一个表是否存在于给定的模式中
- 如何将整数转换为字符串作为PostgreSQL查询的一部分?
- Psycopg2:用一个查询插入多行
- PostgreSQL返回JSON数组的结果集?
- PostgreSQL通配符LIKE用于单词列表中的任何一个
- 检查Postgres JSON数组是否包含字符串
- psql: FATAL: Peer authentication failed for user "dev"
- 如何在Postgres/SQL中获得两个整数的最小/最大值?
- 如何在postgresql中显示函数,过程,触发器源代码?
- 如何用postgres将间隔转换为小时数?
- 在postgresql中将查询结果按月和年分组
- 如何改变一个列的数据类型在PostgreSQL表?