2011-05-27 58 views
1

現在我正在做採用php的數據庫(Postgres)備份。我正在使用命令pg_query('\ d')來檢索表。但沒有工作。請幫幫我。pg_query(' d')在PHP中不工作

+0

「不工作」是什麼意思?怎麼了? – 2011-05-27 08:13:24

回答

2

\dpsql命令行工具的一項功能。它在查詢中不可用。

+0

\ d相當於php查詢? – user586445 2011-05-27 08:17:53

1

bytes.com

如果啓動PSQL與-E選項 你可以看到內部的命令發送 到後端。這通常可以給 你很多提示,作爲對從數據庫拉目錄數據的最佳方式 :

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。您也可以通過這種方式獲得其他命令的等效查詢。

0

\ d在psql中有效。如果你想這樣做,在Web服務器上,你也許可以使用:

Select tablename From pg_tables Where tableowner='theowner'; 

和當然,改變「theowner」到任何人的主人居然是名。