mysql - 如何创建可以将数据库迁移到另一个规范化数据库的脚本

标签 mysql database database-migration

我有一个包含数十万数据的现有系统。我需要将其迁移到另一个结构不同的数据库。我如何创建一个将数据库迁移到不同结构的脚本。

我尝试了 csv,但我需要将一些列设置为外键,因为新数据库已经标准化了

示例

enter image description here

最佳答案

这是纯MySQL 中的解决方案。它考虑到您评论说:“新数据库中的类别已设置”。您可以做 insert-select像这样:

INSERT INTO database2.products (id, category_id, name)
SELECT p.id, 
       (SELECT c.id FROM database2.categories AS c WHERE p.category = c.category),
       p.name
FROM database1.products as p

特殊技巧在于比较类别字段的子查询。

警告:未经测试的查询。先备份一下!

关于mysql - 如何创建可以将数据库迁移到另一个规范化数据库的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55862512/

相关文章:

javascript - PHP Form Textarea Mysql 在按下 Enter 后添加 <br/>

php - MYSQL PHP 帮助返回数据集

java - Flyway-maven-plugin 如何从 spring boot application.yml 中读取设置

sql - 使用旧式连接进行左连接

两个日期和两次之间的mySQL查询

java - Spring Boot JPA 保留具有空列的父级的子级

mysql - 错误代码 : 1064 on MySQL update query

mysql - 与 SQL Server 相比,为什么 MySQL 中该表占用的磁盘空间是 SQL Server 的 10 倍?

java - 使用java类进行flyway-db数据库特定迁移

mysql - 通过 Hamachi (VPN) 访问数据库