mysqldump - 排序表输出以避免外键中的前向引用

时间:2018-04-17 17:13:10

标签: mysql sql ddl

我目前正在尝试创建一个脚本:

  • 处理mysql架构并转储架构中表的描述,
  • 将生成的DDL的MySQL特定部分转换为另一个等效的数据库系统(目前以H2为目标,但是如果我需要,在Java环境中运行进程并支持内存表的任何数据库都是合适的开关),和
  • 然后在新数据库系统的模式中重新创建它们。

目前,我正在使用mysqldump执行操作的第一部分,并使用一系列字符串/正则表达式替换来执行第二部分。

我遇到的问题是mysqldump正在生成输出,其表格在引用的表之前具有外键。这对于mysql来说不是问题,因为在mysql中你可以禁用约束检查然后创建它们 - 不幸的是,虽然H2确实有一个禁用约束的选项,它只适用于数据更改而不是表创建。

我真的不需要解析SQL足以自己识别表的正确顺序,因为看起来至少模糊不清。

因此,是否有(1)以任何方式让mysqldump以正确的顺序生成表格,或者(2)产生正确顺序的替代方法?

(我知道至少在理论上可能会有一个架构,其中没有正确的顺序,但我知道我可能使用的架构都没有这个问题,所以这个不是我需要担心的事情)

0 个答案:

没有答案