在PostgreSQL中,我們可以使用客戶端終端中的\d
命令列出數據庫中的表,但它在客戶端JDBC程序中失敗。可能嗎?爲什麼?爲什麼不?「 d」在jdbc程序中失敗
1
A
回答
3
\d
是一個psql
命令,不是SQL語句。
要獲取數據庫中可用的表,您應該使用JDBC API,例如DatabaseMetaData.getTables()
。
或者,您可以運行
select table_schema, table_name
from information_schema.tables
要獲得表名的列表。
1
選擇SCHEMANAME,relname
從pg_stat_user_tables和
這將列出所有用戶表,
INFORMATION_SCHEMA.TABLES將列出所有用戶表和表屬於架構 「INFORMATION_SCHEMA和pg_catalog」
+0
確切的,謝謝! – manuzhang
相關問題
- 1. JDBC驅動程序連接失敗
- 2. 指定的JDBC驅動程序:org.h2.jdbc - 初始化失敗
- 3. jdbc開始失敗
- 4. 編譯失敗,D編程(GDC)
- 5. MySQL:ON DUPLICATE KEY語句在JDBC中失敗
- 6. 編譯失敗D代碼
- 7. GWT JDBC LDAP連接失敗
- 8. JDBC MySQL執行SQL失敗
- 9. 連接認證失敗JDBC
- 10. Tomcat JDBC Count失敗登錄
- 11. JDBC連接失敗ORA-12516
- 12. Jenkins在psexec上工作失敗-d
- 13. RewriteCond -d .htaccess失敗,但目錄存在
- 14. 的Tomcat啓動失敗,因爲JDBC驅動程序加載的
- 15. JDBC驅動程序屬性設置失敗
- 16. 從jar文件運行程序時,jdbc連接失敗
- 17. alloc-init有時在程序中失敗
- 18. 在JDBC程序中的java.lang.ClassNotFoundException
- 19. FOR/D終止失敗(此時意外...
- 20. JavaFX擺動節點D&D失敗,因爲1.8.0_40
- 21. Scanner.hasNext(String s)已爲 「\\ d \\ \\小號d」 失敗
- 22. 基本awk程序失敗
- 23. Android程序啓動失敗
- 24. java程序聲明失敗
- 25. fread失敗的C程序
- 26. 程序部署失敗
- 27. 編譯C程序失敗
- 28. 切換程序失敗
- 29. 應用程序:compileDebugJavaWithJavac失敗
- 30. JTA:如何測試JMS和JDBC失敗?
要詳細說明@ a_horse_with_no_name的答案,所有反斜槓命令都是'psql',而不是服務器端理解的。通過運行'psql -E',你可以看到他們做了什麼,但是通常有一種比psql'更方便或標準的方式來實現 - 例如通過'information_schema',而'psql'通常會使用'pg_catalog' 。 –
@CraigRinger「便攜式」是什麼意思?一個Postgres與另一個Postgres有什麼區別?跨操作系統? – manuzhang
在不同的SQL數據庫系統之間可移植,大多數情況下,您需要在MS SQL Server,Oracle,MySQL等上運行。您使用較少移植麻煩的標準內容更多。在'pg_catalog'的情況下,它也從Pg主版本轉換爲Pg主版本,而'information_schema'沒有接近任何地方(它的結構由SQL標準設置)。儘可能使用'information_schema'可以使升級變得更容易。 –