繁体   English   中英

我可以在 postgresql 数据库中导入 sql dump

[英]Can i import sql dump in postgresql database

我有 mysql 转储 localhost.sql。 但是当我尝试将它导入到 postgresql db 时,我得到了这样的错误:

psql:localhost.sql:10: ERROR:  unrecognized configuration parameter "sql_mode"
psql:localhost.sql:11: ERROR:  unrecognized configuration parameter "autocommit"
START TRANSACTION
psql:localhost.sql:13: ERROR:  unrecognized configuration parameter "time_zone"
psql:localhost.sql:24: ERROR:  syntax error at or near "NOT"
LINE 1: CREATE DATABASE IF NOT EXISTS `peoplfv0_WPGHJ` DEFAULT CHARA...
                           ^
psql:localhost.sql:25: ERROR:  syntax error at or near "USE"
LINE 1: USE `peoplfv0_WPGHJ`;
        ^
psql:localhost.sql:39: ERROR:  syntax error at or near "`"
LINE 1: CREATE TABLE `dl_affiliates` (
                     ^
psql:localhost.sql:47: ERROR:  syntax error at or near "`"
LINE 1: INSERT INTO `dl_affiliates` (`affiliates_id`, `affiliates_na...
                    ^
psql:localhost.sql:65: ERROR:  syntax error at or near "`"
LINE 1: CREATE TABLE `dl_artist` (
                     ^
psql:localhost.sql:94: ERROR:  syntax error at or near "`"

我可以将此 sql 转储转换为 postgresql 格式以从 mysql 转储导入数据吗?

您可以尝试 mysqldump 的--compatible选项:

mysqldump --compatible=postgresql dbname > dbname.sql

根据 MySQL 文档:

--兼容=名称

生成与其他数据库系统或更旧的 MySQL 服务器更兼容的输出。 name 的值可以是 ansi、mysql323、mysql40、postgresql、oracle、mssql、db2、maxdb、no_key_options、no_table_options 或 no_field_options。 要使用多个值,请用逗号分隔它们。 这些值与设置服务器 SQL 模式的相应选项具有相同的含义。 请参见第 5.1.10 节,“服务器 SQL 模式”。

此选项不保证与其他服务器的兼容性。 它仅启用当前可用于使转储输出更兼容的那些 SQL 模式值。 例如,--compatible=oracle 不会将数据类型映射到 Oracle 类型或使用 Oracle 注释语法。

正如文档所说,它不能保证与 Postgres 语法完全兼容,但它有很大帮助,有时可能是解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM