2012-07-25 63 views
2

我使用mysqldump從表中保存數據並將其移至Postgres數據庫。
我做轉儲:如何更改mysqldump for Postgres格式的單引號轉義?

mysqldump --complete-insert --no-create-info --no-create-db --compatible=postgresql -uroot -p music files > music_files.sql 

但在做的psql

=> \i music_files.sql 

有這樣的錯誤:

music_files.sql:29: ERROR: syntax error at or near "s" 
LINE 1: ...,5,'Impossible',NULL),(33,4103,178,841,198,'Tifa\'s Theme [P... 

Postgres沒有明白這個轉義。它需要2個報價''之前s
我該如何使用mysqldump?

+1

您可以嘗試'--compatible = ansi' – fvu 2012-07-25 10:12:14

+0

@fvu,對我來說不起作用,仍然\'轉義 – Sergey 2012-07-25 10:25:54

+1

很抱歉聽到這些,顯然這些' - 兼容'設置不兼容.. 。 – fvu 2012-07-25 11:33:35

回答

4

可以在psql外殼使用:

=> set backslash_quote = on; 
=> set standard_conforming_strings = off; 
=> select 'foo\'bar'; 
?column? 
---------- 
foo'bar 
=> \i ...whatever... 

使這個持續在一些配置文件或ALTER USER等設置它,因爲這可能是相關的安全。