2014-01-09 117 views
0

我正在用Java编写代码来构建模式并填充H2内存数据库 为了测试它,我想删除所有数据并尝试从代码重新构建它。在H2数据库中删除元数据(信息模式)

我试图通过命令删除所有数据:

drop all objects 

但我仍然有在H2控制台INFORMATION_SCHEMA文件夹对象。 是否有一个很好的和简单的命令从H2丢弃所有的信息?

谢谢。

+1

不能从“INFORMATION_SCHEMA”它们是数据库所需元数据的重要组成部分。 –

+0

感谢,所以我怎么能完全恢复数据库? – Wasafa1

+0

'放下所有对象'就能做到这一点。您可以忽略在'INFORMATION_SCHEMA'可见的对象。正如我所说的:他们是数据库的一个必要的(内部)的一部分。不要乱它们 –

回答

0

对于H2数据库,你不能删除INFORMATION_SCHEMA和它的表。

这些表都是不正规的表(其中行中的数据库文件仍然存在)。相反,数据是在需要时生成的,当查询它们时。 (有一个例外:有3个表包含CLOB和BLOB数据,但这些表是隐藏的,在未来的H2版本中,这些表可能会消失。)

+0

谢谢,你如何建议在修改数据库后做一个完整的干净启动?有没有比删除文件更简单的方法? – Wasafa1

+0

是的,运行语句“[drop all objects](http://h2database.com/html/grammar.html#drop_all_objects)”。 –