Postgresql
列出指定表的所有列
我正在數據庫中尋找我不知道的精確資訊。數據庫在單獨的機器上,但我可以登錄到它,並
psql
以管理員權限啟動命令行。這是第三方產品,他們回答問題的速度很慢。我知道數據在那個數據庫中,所以我想做一些逆向工程。
給定一個表名,是否可以獲得該表中列名的列表?
例如,在 SQL Server 中,可以將表轉儲到可重用的
CREATE
語句中,該語句以文本形式列出組成表的所有列。
除了
\d+ <table_name>
您已經找到的命令行之外,您還可以使用Information Schema來查找列數據,使用information_schema.columns
:SELECT * FROM information_schema.columns WHERE table_schema = 'your_schema' AND table_name = 'your_table' ;
注意:根據上面的範例,請確保將值括在引號內。
作為其他答案的補充,即使是不返回任何行的 SELECT 語句也會向您和應用程式碼公開列名。
select * from table_name where false;
我打算讓幾乎所有 DBMS 的幾乎所有客戶端軟體都可以執行此操作。(幾乎?是的,有些不支持像這樣的子句
where false
。相反,它們需要像這樣的表達式where 1 = 0
。)權限可能會與這些方法中的任何一種一起發揮作用。