pg_query('\ d')在PHP中不起作用

时间:2011-05-27 08:12:20

标签: php

现在我正在使用php进行数据库(Postgres)备份。我正在使用命令pg_query('\ d')来检索表。但是没有用。请帮帮我。

3 个答案:

答案 0 :(得分:2)

\dpsql命令行工具的一项功能。它不适用于查询。

答案 1 :(得分:1)

来自bytes.com

  

如果使用-E选项启动psql   你可以看到发送的内部命令   到了后端。这经常会给   你有很多关于最佳方式的提示   从数据库中提取目录数据:

jason=# \dt
********* QUERY **********
SELECT n.nspname as "Schema",
c.relname as "Name",
CASE c.relkind WHEN 'r' THEN 'table' WHEN 'v' THEN 'view' WHEN 'i' THEN
'index' WHEN 'S' THEN 'sequence' WHEN 's' THEN 'special' END as "Type",
u.usename as "Owner"
FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_user u ON u.usesysid = c.relowner
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relkind IN ('r','')
AND n.nspname NOT IN ('pg_catalog', 'pg_toast')
AND pg_catalog.pg_table_is_visible(c.oid)
ORDER BY 1,2;
**************************

这样,您可以在控制台客户端中使用\d时查看实际使用的查询。使用PHP时,您必须使用该查询而不是\d。您也可以通过这种方式获得其他命令的等效查询。

答案 2 :(得分:0)

\ d在psql中有效。如果要在Web服务器上执行此操作,可以使用:

Select tablename From pg_tables Where tableowner='theowner';

当然,将“theowner”更改为所有者实际所在的名称。