如何使用psql命令在PostgreSQL中执行Oracle的DESCRIBE TABLE?
当前回答
除了PostgreSQL方式(\d“something”或\dt“table”或\ds“sequence”等)
SQL标准方式,如下所示:
select column_name, data_type, character_maximum_length, column_default, is_nullable
from INFORMATION_SCHEMA.COLUMNS where table_name = '<name of table>';
它受到许多db引擎的支持。
其他回答
您也可以使用以下查询进行检查
Select * from schema_name.table_name limit 0;
示例:我的表有两列名称和pwd。下面是截图。
*使用PG admin3
您可以使用星号执行\d*搜索模式*,以查找与您感兴趣的搜索模式匹配的表。
这应该是解决方案:
SELECT * FROM information_schema.columns
WHERE table_schema = 'your_schema'
AND table_name = 'your_table'
与DESCRIBE TABLE等效的psql是\d TABLE。
有关详细信息,请参阅PostgreSQL手册的psql部分。
我为get表模式编写了以下脚本。
'CREATE TABLE ' || 'yourschema.yourtable' || E'\n(\n' ||
array_to_string(
array_agg(
' ' || column_expr
)
, E',\n'
) || E'\n);\n'
from
(
SELECT ' ' || column_name || ' ' || data_type ||
coalesce('(' || character_maximum_length || ')', '') ||
case when is_nullable = 'YES' then ' NULL' else ' NOT NULL' end as column_expr
FROM information_schema.columns
WHERE table_schema || '.' || table_name = 'yourschema.yourtable'
ORDER BY ordinal_position
) column_list;
推荐文章
- PostgreSQL删除所有内容
- 为什么PostgreSQL要对索引列进行顺序扫描?
- PostgreSQL INSERT ON冲突更新(upsert)使用所有排除的值
- 如何检查一个表是否存在于给定的模式中
- 如何在SQL Server Management Studio中查看查询历史
- 如何将整数转换为字符串作为PostgreSQL查询的一部分?
- Psycopg2:用一个查询插入多行
- 如何添加一个设置路径只执行批处理文件?
- PostgreSQL返回JSON数组的结果集?
- PostgreSQL通配符LIKE用于单词列表中的任何一个
- 如何创建数据库的MongoDB转储?
- 检查Postgres JSON数组是否包含字符串
- psql: FATAL: Peer authentication failed for user "dev"
- 如何在Postgres/SQL中获得两个整数的最小/最大值?
- 多语言数据库设计的最佳实践是什么?