插入一些数据并运行一些查询后,我决定从表中删除数据。但是,当我同时运行
时TRUNCATE TABLE Mytable
和
从Mytable删除
,下次连接数据库时,它不为空,查询返回结果。 即使我删除了数据库文件夹,它仍然继续。 应该注意的是,在truncatre或delete之后立即运行的表上的查询不会返回任何结果。
答案 0 :(得分:1)
我怀疑数据库的默认行为是自动提交的,并且您在隐式事务中操作。当您断开连接时,您刚刚执行的所有操作都不会写入数据库(ROLLBACK
已发生)。
您需要在关闭连接之前发出COMMIT
。这将最终确定您在数据库中的更改。
答案 1 :(得分:1)
你是否对连接做了明确的close()?
HSQLDB具有日志记录操作的文本格式,并在重新启动执行该文件后重新创建数据库状态。如果不让DB干净地关闭,则可能无法将尾随命令写入文件,并且在重新连接时不会再次执行。
您可以在断开连接后查看数据库脚本文件(* .script),看看您的命令是否被记录。