hsqldb表在清除然后重新连接后不为空

时间:2011-04-03 15:33:16

标签: java hsqldb

插入一些数据并运行一些查询后,我决定从表中删除数据。但是,当我同时运行

TRUNCATE TABLE Mytable

从Mytable删除

,下次连接数据库时,它不为空,查询返回结果。 即使我删除了数据库文件夹,它仍然继续。 应该注意的是,在truncatre或delete之后立即运行的表上的查询不会返回任何结果。

2 个答案:

答案 0 :(得分:1)

我怀疑数据库的默认行为是自动提交的,并且您在隐式事务中操作。当您断开连接时,您刚刚执行的所有操作都不会写入数据库(ROLLBACK已发生)。

您需要在关闭连接之前发出COMMIT。这将最终确定您在数据库中的更改。

答案 1 :(得分:1)

你是否对连接做了明确的close()?

HSQLDB具有日志记录操作的文本格式,并在重新启动执行该文件后重新创建数据库状态。如果不让DB干净地关闭,则可能无法将尾随命令写入文件,并且在重新连接时不会再次执行。

您可以在断开连接后查看数据库脚本文件(* .script),看看您的命令是否被记录。