sql - 从 MySQL 迁移到任意符合标准的 SQL2003 服务器

标签 sql mysql

是否有 mysqldump 或类似工具的咒语可以生成一段 SQL2003 代码来在任意 SQL2003 兼容的 RDBMS 中创建和填充相同的数据库?

(我现在正在尝试的是 MonetDB)

最佳答案

DDL 语句本质上是特定于数据库供应商的。尽管它们具有相同的基本结构,但每个供应商对于如何定义类型、索引、约束等都有自己的看法。

另一方面,DML 语句相当可移植。因此我建议:

  • 转储不带任何数据的数据库 (mysqldump --no-data) 以获取架构
  • 进行必要的更改以将架构加载到其他数据库上 - 这些需要手动完成(但可能可以进行一些搜索/替换)
  • 在关闭扩展插入且不创建表的情况下转储数据 (--extended-insert=0 --no-create-info)
  • 针对其他数据库运行生成的脚本。

这应该可以满足您的要求。

但是,当将应用程序移植到不同的数据库供应商时,还需要许多其他东西;移动模式和数据是很容易的事情。检查引入的错误、不同的行为和性能测试是困难的部分。

至少测试应用程序中的每个查询在新数据库上的有效性。理想情况下可以做更多事情。

关于sql - 从 MySQL 迁移到任意符合标准的 SQL2003 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/85522/

相关文章:

sql - 从表中删除第 n 行(postgresql)

mysql - 从另一个表更新值

mysql - SQL 语句出现错误

sql - 从其他方面相同的行中添加总计

mysql - 用增量数字填充字段需要什么 MySQL 语句

sql - 将各种类似日期的字符串 (varchar) 转换为一个 DATE 字段

java - 为 Android 表格布局动态填充数据

mysql - 根据 3 个表从 1 个表中获取最大值

MySQL:在结果之间使用日期

java - 启动 ApplicationContext 时出错。要显示条件报告,请在 spring-boot 中启用 'debug' 并重新运行应用程序