我在订购sql时面临一些问题。
我们在一个目录下为每个表都有一个sql脚本文件。例如:目录c:\ SqlScripts中有user.sql和role.sql。我们使用sql maven插件来执行这些sql文件。
角色表具有用户表的Foriegn键,并且执行失败,因为插件试图在user.sql之前执行role.sql。我不能使用orderfile属性,因为我们指定为c:\ SqlScripts * .sql。
我如何克服这个问题?
我看到了两个解决方案:
按创建顺序将所有脚本合并到一个文件中,创建角色的脚本位于创建用户的脚本之后。
删除*通配符,并按执行顺序指定属性中的每个文件。
根据执行顺序编号文件的名称ex:1_user.sql,2_role.sql并使用'升序'orderfile属性(不确定这是否可行,因为可能不会应用排序)
更优雅的解决方案?
答案 0 :(得分:0)
我不能使用orderfile属性,因为我们指定为c:\ SqlScripts * .sql。
显然,这只有在您没有严格的订购要求时才有效。如果你这样做......
我如何克服这个问题?
...使用允许以确定的方式处理排序的设置。
我看到3个解决方案(...)。更优雅的解决方案?
我认为你钉了。我倾向于选项3。