SQLTool 退出后不提交数据 (HSQLDB)

Posted

技术标签:

【中文标题】SQLTool 退出后不提交数据 (HSQLDB)【英文标题】:SQLTool does not commit data after quit (HSQLDB) 【发布时间】:2011-12-03 23:45:25 【问题描述】:

我真的不懂 SQLTool...我只想将一个 SQL 文件导入数据库并选择此命令来执行此操作:

java -jar ~/bin/sqltool.jar --autoCommit --inlineRc URL=jdbc:hsqldb:file:/path/to/my/database.hsqldb,USER=SA,PASSWORD='' database.sql

在 database.sql 中是所有创建的东西,比如:

create table foo(id identity, name varchar(256));

然后我有第二个脚本,叫做 data.sql,它应该被写入数据库中,在这个是我的整个 testdata 的东西:

insert into foo(name) values('bla');

当我现在执行我的 bash 脚本时,SQLTool 会创建一个新的数据库(在我删除文件之前),但不会对 SQL 文件做任何事情! 第一个脚本运行没有错误,但第二个说:

SEVERE  SQL Fehler an 'data.sql' Zeile 1:
"insert into foo (name) values('bla')"
user lacks privilege or object not found: FOO
org.hsqldb.cmdline.SqlTool$SqlToolException

当我现在连接到数据库并说\dt 时没有表!

我还在每个文件的末尾添加了一个commit;,并使用--autoCommit 打开了SQLTool,但这也不起作用……这是怎么回事?

【问题讨论】:

【参考方案1】:

hsqldb 在最后一个连接关闭之前需要 SHUTDOWN 命令或 JDBC 连接属性,shutdown=true。见docs。

【讨论】:

+1 ;shutdown=true 可以附加到 URL 以轻松完成此操作。

以上是关于SQLTool 退出后不提交数据 (HSQLDB)的主要内容,如果未能解决你的问题,请参考以下文章

在脚本中向 HSQLDB SqlTool 提供密码

HSQLDB SqlTool 抛出用户缺少权限或找不到对象

HSQL SQLTool无法连接

PhpUnit 点击提交后不等待加载页面

连接到远程数据库脚本后不退出

HSQLDB:退出存储过程