Postgres 中是否有与 MySQL 的 SHOW CREATE TABLE 等效的功能?

Postgres 中是否有与 MySQL 的 SHOW CREATE TABLE 等效的功能?

Postgres 中是否有与 MySQL 相当的版本SHOW CREATE TABLE?这可能吗?如果没有,下一个最佳解决方案是什么?

我需要该语句,因为我用它在远程服务器上(通过 WCF)创建表。

答案1

你可以尝试在 PostgreSQL 日志文件中跟踪pg_dump --table table --schema-only到底做了什么。然后你可以使用相同的方法编写自己的 SQL 函数。

答案2

pg_dump:

pg_dump -st tablename dbname

或使用 PostgreSQL GUI 工具(pgAdmin、phpPgAdmin 等)

答案3

在命令行(psql)中您可以运行:\d <table name>列出所有列、它们的类型和索引。

答案4

我意识到我来晚了,但这是我的谷歌搜索的第一个结果,所以我想我会用我想到的东西来回答。

使用此查询获取以下列,您可以获得相当多的解决方案:

SELECT *
FROM information_schema.columns
WHERE table_schema = 'YOURSCHEMA' AND table_name = 'YOURTABLE'
ORDER BY ordinal_position;

然后对最常见的索引进行以下查询:

SELECT c.oid, c.relname, a.attname, a.attnum, i.indisprimary, i.indisunique
FROM pg_index AS i, pg_class AS c, pg_attribute AS a
WHERE i.indexrelid = c.oid AND i.indexrelid = a.attrelid AND i.indrelid = 'YOURSCHEMA.YOURTABLE'::regclass
ORDER BY" => "c.oid, a.attnum

然后就是以正确的格式构建查询字符串的问题。

相关内容