2017-05-06 37 views
1

我有一個至少有6個功能文件的目錄。如何在psql中獲取多個函數?

我使用的是psql,我需要能夠立即爲所有函數文件提供源文件(初始化爲?)。

我敢肯定,做一個單一的功能,並呼籲所有其他像SELECT fn1, fn2不會工作。

\i functions_folder/fn1.sql 6次也不理想。

所以有辦法我可以(也許)\i functions/*.sql?這樣做,目前給我

functions/*.sql: No such file or directory

我使用PostgreSQL的9.6.2

回答

2

如果你正在使用Unix操作系統:

 
postgres=# \! cat ./functions/*.sql > all_functions.sql 
postgres=# \i all_functions.sql 

對於Windows試圖找到cat的類似物(我記得它是與一些標誌copy命令)

PS我有感覺它可以通過使用反引號完成:

在一個參數中,反引號(`)中包含的文本被視爲傳遞給shell的命令行。該命令的輸出(刪除了任何結尾的換行符)替換了反引號文本。

Documentation

但還是不知道怎麼樣。也許有人更有經驗會提供暗示......

+1

謝謝,我使用的是Linux,並且這個工作很完美。沒有反引號/反引號。它也是'類型'命令不貓看到[Windows替代貓命令](http://stackoverflow.com/a/60254/2405689) – ArchNoob

+1

@ArchNoob您提供的鏈接正是這個問題,我發現有關Windows替代方法的信息對於POSIX'cat':o)看看接受的答案的註釋(關於不必要的行)並用'copy/b'查看下一個答案。祝你好運。 – Abelisto

+0

它肯定是一個相當線程的閱讀,但是我看過'type'的問題。感謝更正和祝你好運的人。 – ArchNoob

2

PSQL創建包含\i命令的包裝,並\i包裝。

+0

「包含'\ i'命令的包裝器」是指包含函數文件名的包裝器?或者包含'\ i filename.sql \ n \ i filaname2.sql'? – ArchNoob

+1

後者;使用包含其他文件的文件。 –

+0

哦,有點像Abelisto在他的回答中所說的? 'cat'功能文件的內容。我不會知道那個伎倆。謝謝。 :D – ArchNoob

相關問題