POSTGREPSQL还原SQL转储语法错误



我正在尝试将https://www.yelp.com/dataset/documentation/sql导入到PostgreSQL实例中。它的口号/背景有问题。除了进行角色替换之外,还有其他方法可以处理吗?

ERROR:  syntax error at or near "PaxHeader"
LINE 1: PaxHeader/yelp_db.sql17 uid=998889796
    ^
ERROR:  syntax error at or near "`"
LINE 1: CREATE DATABASE /*!32312 IF NOT EXISTS*/ `yelp_db` /*!40100 ...
                                             ^
ERROR:  syntax error at or near "USE"
LINE 1: USE `yelp_db`;
    ^
ERROR:  syntax error at or near "`"
LINE 1: DROP TABLE IF EXISTS `attribute`;

这些是典型的mysql语法问题,后者符合标准符合标准,因此不支持。GitHub上有几个不同的转换器可能会有所帮助。当我上次这样做时,有一些工具可以转换文本转储。他们的工作状态不佳,但事情足够接近。审查今天的工具,他们倾向于假设您有一个实际的MySQL数据库,而不仅仅是转储文件。

因此,今天解决此问题的合适方法是将数据加载到mySQL中,然后将其移至PostgreSQL。在这方面,您似乎有四个选择用于转换架构和数据的四个选项:

  1. 有一些工具可以从mysql转换XML转储并将其加载到Postgresql中。
  2. 您可以将外国数据包装器从PostgreSQL到MySQL DB,然后复制架构和数据。
  3. 您可以手动转换模式,然后使用CSV使用ETL过程转储/重新加载数据。
  4. 有一些工具可以读取LIVE MYSQL数据库并将数据插入PostgreSQL。

最新更新