实际上,我需要从一个由PostgreSQL生成的SQL文件中填充MySQL数据库。
pg_dump dbname > myfile.sql
所以,如果我试着这样做
mysql> source myfile.sql
这显然行不通。虽然它填充了70%的表,但我想知道是否有一种方法可以实现?
从postgresql的源文件中,我可以将其作为数据源并填充到我的MySQL数据库中吗?
实际上,我需要从一个由PostgreSQL生成的SQL文件中填充MySQL数据库。
pg_dump dbname > myfile.sql
所以,如果我试着这样做
mysql> source myfile.sql
这显然行不通。虽然它填充了70%的表,但我想知道是否有一种方法可以实现?
从postgresql的源文件中,我可以将其作为数据源并填充到我的MySQL数据库中吗?
COPY (SELECT query) TO '/path to csv file -*.csv';
在 MySQL 中(导入):
load data infile 'path to csv file-*.csv' into table tablename fields terminated by ',' lines terminated by '\n' .
如果你仍想使用转储工具(pg_dump)进行操作,可以添加以下选项来生成一个MySQL更易理解的转储文件:
-d --data-only --no-owner --no-acl --attribute-inserts --disable-dollar-quoting --no-tablespaces
请记住,根据源数据库的结构,您可能需要操纵转储文件以使MysQL能够理解生成的转储文件...
注意:使用“PostgreSQL ANSI(x64)”作为驱动程序在迁移时会出现错误。可能是因为我的数据包含Unicode字符。
choco install psqlodbc -y
。 - stapmoshun