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)的主要内容,如果未能解决你的问题,请参考以下文章