我在订购 sql 执行时遇到了一些问题。
我们在一个目录下的每个表都有一个 sql 脚本文件。例如:目录 c:\SqlScripts 中有 user.sql 和 role.sql。我们正在使用 sql maven 插件来执行这些 sql 文件。
角色表有一个用户表的 Foriegn 键,执行失败,因为插件试图在 user.sql 之前执行 role.sql。我不能使用 orderfile 属性,因为我们指定为 c:\SqlScripts*.sql。
我该如何克服这个问题?
我看到了 2 个解决方案:
将所有脚本按创建顺序合并到一个文件中,创建角色的脚本在创建用户的脚本之后。
去掉 * 通配符,按执行顺序指定属性中的每个文件。
根据执行顺序对文件的名称进行编号,例如:1_user.sql、2_role.sql 并使用 'ascending' orderfile 属性(但不确定这是否可行,因为可能无法应用排序)
还有更优雅的解决方案吗?