簡體   English   中英

psql恢復sql轉儲語法錯誤

[英]psql restore sql dump syntax error

我正在嘗試將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`;

這些是PostgreSQL符合標准的典型MySQL語法問題,因此不支持。 GitHub上有一些不同的轉換器可能會有所幫助。 當我最后要做此操作時,有一些工具可以轉換文本轉儲。 他們工作不完美,但事情進展得很順利。 回顧當今的工具,他們傾向於假設您擁有一個實際的MySQL數據庫,而不僅僅是一個轉儲文件。

因此,今天解決此問題的適當方法似乎是將數據加載到MySQL,然后將其移動到PostgreSQL。 在這方面,您似乎可以想到四個用於轉換模式和數據的選項:

  1. 有一些工具可以將MySQL的XML轉儲轉換為PostgreSQL並將其加載到PostgreSQL。
  2. 您可以從PostgreSQL到MySQL db設置外部數據包裝器,然后將模式和數據復制到其中。
  3. 您可以手動轉換架構,然后使用ETL流程通過CSV轉儲/重新加載數據。
  4. 有一些工具可以讀取活動的MySQL數據庫並將數據插入PostgreSQL。

暫無
暫無

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

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