我有带有子表的父表(这取决于父表)。是否需要为每个子表和父表创建一个SQL文件?或者拥有一个包含父表及其所有子表的 .sql 文件?
如果我将所有建表语句都包含在一个SQL文件中,如果其中任何一个建表语句失败,那么该SQL文件中所有成功的建表语句都会回滚吗?
至于回滚什么实际上取决于相关的数据库系统。
是的,将所有表放入一个脚本中意味着,再次,当失败时,所有表都将回滚。但是,您也可以将事务投入工作,这将允许您回滚多个脚本中的行为集,就像单个脚本中的多个语句一样。
简而言之,两种方法都可以。一般来说,如果您将这些表部署为一项功能,我会说。假设您的应用程序版本为 1.1.1.42。然后它们在一个更改脚本中组合在一起,您可以在部署失败时处理回滚(测试是您的朋友)。