首页 文章

在HSQLDB中截断模式

提问于
浏览
2

我正在使用HSQLDB进行单元测试 . 问题是我的项目包含很多测试并丢弃整个数据库并为每次测试重新创建它需要相当长的时间 . 我发现新的HSQLDB包含从架构中删除数据的可能性,而不会真正丢弃表,这显然更有效 . 唯一的问题是我有两个相互关联的模式和表 . 通常我会写

getSession().createSQLQuery("TRUNCATE SCHEMA aaa AND COMMIT").executeUpdate();
getSession().createSQLQuery("TRUNCATE SCHEMA bbb AND COMMIT").executeUpdate();

(其中aaa和bbb将是我的模式的名称)问题是aaa包含引用bbb中的表的表,而bbb包含引用aaa中的表的表,因此总有一些外键阻止我执行这些命令接踵而至 . 我怎么可能运行它,以便我的数据库中的所有数据都被清除?

1 回答

  • 1

    您可以选择以下选项:

    TRUNCATE SCHEMA aaa AND COMMIT NO CHECK
    

相关问题