前提:
数据库初始化脚本中包含基本的见表语句以及一些初始数据。DDL 数据库定义语言 创建数据库表,修改表中列的属性,删除表等语言。
DML 数据操作语言 表中数据的增删改查(crud)。
问题:
使用的orm工具不支持DDL语言,所以准备写原生的JDBC来实现,但是DDL在jdbc中无法回滚,DML可以回滚,使用jdbc初始化时,如果脚本报错,无法进行正常的回滚。解决方法:
将DDL和DML语句分开,放在两个文件中执行DDL语言如果报错,可以 执行查询语句:
select t.table_name from user_tables t;
获得此用户下所有表的表名,将这些已经创建的表删除然后重新执行此脚本。
DML语言的sql脚本可以正常进行报错回滚。
本文介绍了一种在使用JDBC进行数据库初始化时,针对DDL和DML语句的回滚策略。通过将DDL与DML分离,并分别处理错误情况,确保了数据库初始化过程的稳定性和可靠性。
660

被折叠的 条评论
为什么被折叠?



