在 HSQLDB 中截断模式
Posted
技术标签:
【中文标题】在 HSQLDB 中截断模式【英文标题】:Truncate schema in HSQLDB 【发布时间】:2015-04-27 16:54:18 【问题描述】:我正在使用 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】:你可以通过一个选项来做到这一点:
TRUNCATE SCHEMA aaa AND COMMIT NO CHECK
【讨论】:
以上是关于在 HSQLDB 中截断模式的主要内容,如果未能解决你的问题,请参考以下文章