将MySQL数据库数据转换为PGSQL数据库,及遇到的问题
将MySQL数据库数据转换为PGSQL数据库近期实践了一下如何将MySQL的数据转换到PGSQL中使用navicat15及以上版本的数据传输功能首先选择工具中的数据传输功能传输之前要在pgsql中建立一个接受数据的数据库,为了方便选择同名数据库然后选择要传输的数据库选择要传输的数据因为MySQL转PGSQL是会由于语法不通出错,所以可以在选项中选择错误时继续随后点击开始即可记得记录下出错的表和错误
将MySQL数据库数据转换为PGSQL数据库
近期实践了一下如何将MySQL的数据转换到PGSQL中
使用navicat15及以上版本的数据传输功能
首先选择工具中的数据传输功能
传输之前要在pgsql中建立一个接受数据的数据库,为了方便选择同名数据库
然后选择要传输的数据库
选择要传输的数据
因为MySQL转PGSQL是会由于语法不通出错,所以可以在选项中选择错误时继续
随后点击开始即可
记得记录下出错的表和错误内容
随后就可以看到表格已经添加到PGSQL中了
转移时遇到的问题
我遇到的大致可以分为三类错误
- 数值类型错误
- 设置索引错误
- 设置外键错误
数值类型错误
因为转换后PGSQL默认id是int4类型,而MySQL自带的information_schema数据库中有许多的id数据超出了int4的上限,改为int8或numeric可以解决问题
设置索引错误
MySQL中不同表之间可以有同名索引,但是PGSQL是同一数据库共用一个索引库,所以要避免索引名字重复
设置外键错误
MySQL是支持复合主键的其中一个作为外键的,虽然MySQL不推荐,但它确实是支持的。但PGSQL不支持这种做法,当你的MySQL使用了复合主键是要注意。
再不更改数据库现有结构下,可以添加想要作为外键的字段的唯一键,在添加唯一键后,便可以设置外键了
附一个比较清晰的复合主键与联合主键的讲解:
https://www.cnblogs.com/CNty/p/10941398.html
更多推荐
所有评论(0)