是否有mysqldump的咒语或类似的工具来生成一段SQL2003代码,以便在任意符合SQL2003的RDBMS中创建和填充相同的数据库?
(我现在正在尝试的是MonetDB)
最佳答案
DDL语句本质上是特定于数据库供应商的。尽管它们具有相同的基本结构,但每个供应商都有自己的定义类型、索引、约束等的方法。
另一方面,DML语句是相当可移植的。因此,我建议:
在没有任何数据的情况下转储数据库(mysqldump--no data)以获取架构
进行必要的更改以将架构加载到另一个数据库中—这些操作需要手动完成(但可能会进行一些搜索/替换)
关闭扩展插入而不创建表时转储数据(--extended insert=0--no create info)
对另一个数据库运行生成的脚本。
这应该是你想要的。
然而,当将一个应用程序移植到另一个数据库供应商时,还需要很多其他东西;移动模式和数据是很容易的。检查引入的错误、不同的行为和性能测试是难点。
至少要测试应用程序中的每个查询以确定新数据库的有效性。理想的情况是做得更多。