我正在尝试编写一个将表复制到另一个模式的Java应用程序。
如果我仅在目标模式中使用show create table foo_bar
的结果,则在尚未创建外键引用表的情况下会出错。因此,我使用DatabaseMetaData
[getTables()]构建了自己的脚本,以创建没有外键的表。创建所有表后,我将添加FK。这就是麻烦开始的地方。
由于我不能(也不希望)对这些FK脚本进行手动排序,因此我正在寻找一种方法来根据它们的引用顺序运行它们。
是否有一种方法可以按引用顺序生成这些脚本,也许是埋在互联网深处的第三方Java库?还是无法一一运行所有这些alter table脚本,直到程序未收到任何错误?解决此问题的最佳方法是什么?
我正在使用jdbc
通过mysql
连接innodb storage engine
。如果答案中也包含有关其他rdbms的比较信息,将不胜感激。