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
然后就是以正确的格式构建查询字符串的问题。