簡體   English   中英

從MySQL csv導出導入PostgreSQL csv?

[英]PostgreSQL csv import from a MySQL csv export?

它會起作用嗎?

MySQL導出:

SELECT * INTO OUTFILE 'C:/data.csv'
FIELDS TERMINATED BY '\t' OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
FROM table;

PostgreSQL的:

COPY table FROM 'C:/data.csv' WITH DELIMITER AS '\t' NULL AS '\\N' CSV

由於某種原因缺少列。 所以我相信分隔符存在問題。 我糾正了,我該怎么辦? 我可以檢查以下原因錯誤的行。 但我必須尋找哪些角色?

ERROR:  missing data for column "Column21"
CONTEXT:  COPY table, line 88219: ...
  1. 正如@knitti提到的postgres需要知道轉義字符:ESCAPE'\\'
  2. 選擇性地封裝'''是csv的不良格式。最好強制引用。

完整代碼:

mysql 5.5.15:

SELECT *
INTO OUTFILE 'C:/data.csv'
FIELDS TERMINATED BY '\t' ENCLOSED BY '"' ESCAPED BY '\\'
LINES TERMINATED BY '\n'
FROM table;

postgres 9.0.3:

COPY table FROM 'C:/data.csv' WITH DELIMITER AS '\t' NULL AS '\\N' ESCAPE E'\\' CSV

PostgreSQL中的默認引號字符是雙引號,但文檔說,您可以使用任何單個單字節字符。 嘗試添加

ESCAPE '\\'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM