实际上,我需要从PostgreSQL生成的SQL文件填充MySQL数据库,如下所示

pg_dump dbname > myfile.sql

所以,如果我试着go 做

mysql> source myfile.sql

这显然是行不通的.虽然它确实填充了70%的表,但我想知道有什么方法可以实现它吗?

我可以从PostgreSQL的源文件中源化并填充我的MySQL数据库吗?

推荐答案

如果想将数据和 struct 从postgres表迁移到mysql等效表,最简单的方法是使用数据库转换工具,如:ESF Data Migration Toolkit或开源对应的openDBCopy.

如果您不想或不能使用迁移工具,只需要迁移数据,另一种简单的方法是从PostgreSQL导出CSV格式的数据,然后导入到MySQL中,这样您可以使用一些命令,如:

ON Postgres (Export):

COPY (SELECT query) TO '/path to csv file -*.csv'; 

ON Mysql (Import):

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

请记住,根据源数据库的 struct ,您可能必须操作转储文件以允许MySQL理解生成的转储文件.

Database相关问答推荐

在多组MongoDB中查找最新文档的有效方法

1-2400之间格式奇怪的时间数据

使用Postgres获取带有表架构的外键

如何在mongodb数据库中设置导入的CSV文件的字段之间的关系

prisma 中的隐式或显式多对多关系

mongodb聚合从另一个查询中获取值

数据库是序列图中的控制器还是边界?

任何用于存储过程的静态代码分析工具?

将数据库/后端添加到 android 应用程序

如果我使用存储过程,我对 SQL 注入免疫吗?

将 Redis 数据同步到 MySQL 的最佳策略是什么?

NameError:设置更改为 mysql 后未定义名称_mysql

我应该不断地open()和close() SQL 数据库还是让它保持打开状态?

friendship数据库模式

无法加载时区?

如何处理这个错误(1049,未知数据库'/users/ohyunjun/work/astral/mysql')

使用 C3P0 的 JDBC 连接池

Python中的内存数据库

使用 PHP/MySQL 导入 CSV 数据

在具有所需 ForeignKey 引用的 Django (1.8) 应用程序之间移动模型