2

我使用 mysqldump 保存表中的数据并将其移动到 Postgres db。
我用以下方式转储:

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 来制作它?

4

1 回答 1

4

您可以在psql外壳中使用它:

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

不要通过在某些配置文件或其他方式中设置它使其持久化,ALTER USER因为这可能与安全相关。

于 2012-07-25T10:28:08.910 回答