删除 H2 数据库中的元数据(信息模式)
Posted
技术标签:
【中文标题】删除 H2 数据库中的元数据(信息模式)【英文标题】:Delete meta data (Information schema) in H2 data base 【发布时间】:2014-01-09 16:15:26 【问题描述】:我正在用 Java 编写代码来构建模式并填充 H2 内存数据库 为了测试它,我想删除所有数据并尝试从代码中重建它。
我尝试通过命令删除所有数据:
drop all objects
但我仍然在 H2 控制台的 INFORMATION_SCHEMA 文件夹中有对象。 有没有一个简单易用的命令可以从 H2 中删除所有信息?
谢谢。
【问题讨论】:
您不能从INFORMATION_SCHEMA
中删除对象,它们是数据库所需元数据的重要组成部分。
谢谢,我怎样才能完全重置数据库?
drop all objects
会做到这一点。您可以忽略INFORMATION_SCHEMA
中可见的对象。正如我所说:它们是数据库的重要(内部)部分。别惹他们
谢谢@a_horse_with_no_name :)
【参考方案1】:
对于 H2 数据库,您不能删除 INFORMATION_SCHEMA
和它的表。
这些表不是常规表(其中行保留在数据库文件中)。相反,数据是在查询时按需生成的。 (有一个例外:有 3 个表包含 CLOB 和 BLOB 数据,但这些表是隐藏的。在 H2 的未来版本中,这些表可能会消失。)
【讨论】:
谢谢,你建议如何在修改数据库后彻底干净启动?有没有比删除文件更简单的方法? 是的,运行语句“drop all objects”。以上是关于删除 H2 数据库中的元数据(信息模式)的主要内容,如果未能解决你的问题,请参考以下文章