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