回答
COPY tablename TO '/tmp/products_199.csv' DELIMITER ',' CSV HEADER;
檢查了這一點
您可以在PSQL控制檯使用:
\copy (SELECT foo,bar FROM whatever) TO '/tmp/file.csv' DELIMITER ',' CSV HEADER
或者它在bash控制檯:
psql -P format=unaligned -P tuples_only -P fieldsep=\, -c "SELECT foo,bar FROM whatever" > output_file
這值得讚揚 - 一個簡單的工作解決方案! –
這應該減少upvotes,因爲它不回答這個問題? – Eevee
你想有一個大的CSV文件所有表中的數據?大概不是。您需要爲每個表或一個大文件分別提供可用CSV文件標題表示的信息。
單獨的文件
其他的答案顯示瞭如何創建單獨的文件爲每個表。您可以查詢數據庫,向您展示這樣的查詢中的所有表:
SELECT DISTINCT table_name
FROM information_schema.columns
WHERE table_schema='public'
AND position('_' in table_name) <> 1
ORDER BY 1
一個大文件
一個大文件與PostgreSQL的COPY
命令使用可以pg_dump
命令來創建CSV格式的所有表。輸出也將包含所有CREATE TABLE
,CREATE FUNCTION
等,但使用Python,Perl或類似語言,您可以輕鬆提取僅CSV數據。
我做了這個PL/pgSQL函數創建每桌一個.csv文件(不含意見,感謝@tarikki):
CREATE OR REPLACE FUNCTION db_to_csv(path TEXT) RETURNS void AS $$
declare
tables RECORD;
statement TEXT;
begin
FOR tables IN
SELECT (table_schema || '.' || table_name) AS schema_table
FROM information_schema.tables t INNER JOIN information_schema.schemata s
ON s.schema_name = t.table_schema
WHERE t.table_schema NOT IN ('pg_catalog', 'information_schema')
AND t.table_type NOT IN ('VIEW')
ORDER BY schema_table
LOOP
statement := 'COPY ' || tables.schema_table || ' TO ''' || path || '/' || tables.schema_table || '.csv' ||''' DELIMITER '';'' CSV HEADER';
EXECUTE statement;
END LOOP;
return;
end;
$$ LANGUAGE plpgsql;
我使用這種方式:
SELECT db_to_csv('/home/user/dir');
-- this will create one csv file per table, in /home/user/dir/
如果你想在導出時指定數據庫和用戶,你可以修改Piotr給出的答案如下
psql -P format=unaligned -P tuples_only -P fieldsep=\, -c "select * from tableName" > tableName_exp.csv -U <USER> -d <DB_NAME>
個
修改jlldoras輝煌答案通過添加一行,以防止腳本試圖複製觀點:
CREATE OR REPLACE FUNCTION db_to_csv(path TEXT) RETURNS void AS $$
declare
tables RECORD;
statement TEXT;
begin
FOR tables IN
SELECT (table_schema || '.' || table_name) AS schema_table
FROM information_schema.tables t INNER JOIN information_schema.schemata s
ON s.schema_name = t.table_schema
WHERE t.table_schema NOT IN ('pg_catalog', 'information_schema', 'configuration')
AND t.table_type NOT IN ('VIEW')
ORDER BY schema_table
LOOP
statement := 'COPY ' || tables.schema_table || ' TO ''' || path || '/' || tables.schema_table || '.csv' ||''' DELIMITER '';'' CSV HEADER';
EXECUTE statement;
END LOOP;
return;
end;
$$ LANGUAGE plpgsql;
- 1. 將gridview數據導出爲CSV文件
- 2. 將數據導出爲CSV文件?
- 3. 將sqlite數據庫導出爲csv - Sqlite.swift
- 4. 將mysql數據庫導出爲.csv/excel文件
- 5. PHP:將數據庫表格導出爲CSV文件
- 6. 導出數據庫,用java csv文件
- 7. 使用php將數據從數據庫導出到csv文件
- 8. 將整個數據庫數據(db2)導出到csv文件
- 9. 如何將數據從csv文件導出到mysql數據庫?
- 10. 將大Csv文件導入數據庫
- 11. 將CSV文件導入MySQL數據庫
- 12. 將數據導出爲csv附件
- 13. 將mysql數據導出到csv文件
- 14. 將數據導出到CSV文件
- 15. Javascript將數據導出到CSV文件
- 16. 將數據導出到CSV文件
- 17. 如何將數據從GrADs導出到.csv文件或從NetCDF導出爲.csv?
- 18. 將mysql數據庫導出到csv文件的工具
- 19. 將數據庫查詢導出到CSV文件,PostgreSQL和Java
- 20. 導入CSV文件導入數據庫
- 21. 將SQL數據庫導出爲CSV文件並將其與WEKA一起使用
- 22. 如何導出sqlite數據庫爲android中的csv文件?
- 23. 將csv導入數據庫
- 24. PHP:根據2列將mysql數據庫導出爲CSV?
- 25. 將用戶數據從流星導出爲.CSV文件
- 26. October CMS將數據從後端導出爲CSV文件
- 27. 如何將html表格數據導出爲.csv文件?
- 28. 如何使用codeignitor將表格數據導出爲.csv文件?
- 29. 將數據導出爲CSV文件NodejS Express
- 30. 將Iibre office數據庫表導出到文本文件或csv文件
你從哪兒弄來的'products_273'?你直接從[這個答案](http://stackoverflow.com/a/1120390/704015)複製和粘貼,不是嗎?不酷。對那些贊成這個答案的人感到羞恥。 –
從答案複製/粘貼到另一個問題出了什麼問題?我不認爲這是一個特別好的答案,因爲它只適用於單個表格而不是數據庫,但如果不介意重複該技術,它將起作用。 –
@CarlG此事僅供參考,你不應該從別人的作品中獲得榮耀......不要複製/粘貼,你可以在問題中添加評論,並鏈接到你看到的可能有幫助的答案(然後可能將問題標記爲重複,即使這裏的答案不適合) – Random