PostgreSQL 的 PL/pgSQL 過程語言允許強大的資料庫擴充。 本指南詳細介紹了將 PL/pgSQL 查詢結果儲存到 CSV 檔案的兩種方法。
方法一:使用 COPY 進行伺服器端匯出
最有效率的伺服器端方法是利用 PostgreSQL 的 COPY
指令。 像這樣的命令:
<code class="language-sql">COPY (SELECT * FROM foo) TO '/tmp/test.csv' WITH CSV DELIMITER ',' HEADER;</code>
將資料從「foo」表格匯出到伺服器上的 CSV 檔案。 至關重要的是,這需要適當的伺服器端權限。 最佳實務包括使用 SECURITY DEFINER
選項建立專用函數來安全地管理這些權限。
方法 2:使用 COPY TO STDOUT 進行客戶端匯出
或者,您可以使用 COPY TO STDOUT
命令列客戶端中的 psql
命令在客戶端處理 CSV 匯出。 copy
元命令有助於實現這一點:
<code class="language-sql">\copy (SELECT * FROM foo) TO '/tmp/test.csv' WITH CSV DELIMITER ',' HEADER</code>
請注意,copy
是元命令,而不是標準 SQL 命令,因此不需要終止分號 (;
)。
安全注意事項(伺服器端):
伺服器端方法需要仔細的安全規劃:
客戶端方法的注意事項:
使用客戶端方法時:
pg_copy_from
和 pg_copy_to
等內建函數的效能可能不是最佳的。 考慮替代的、更有效的方法。 以上是如何將 PL/pgSQL 查詢結果匯出到 PostgreSQL 中的 CSV 檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!