2

私は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 という 2 番目のスクリプトを用意します。これは、同じようにデータベースに書き込む必要があります。これには、testdata 全体が含まれます。

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

bashスクリプトを実行すると、SQLToolは(ファイルを削除する前に)新しいデータベースを作成しますが、SQLファイルでは何もしません! 最初のスクリプトはエラーなしで実行されますが、2 番目のスクリプトは次のように述べています。

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テーブルがないと言うと!

また、各ファイルの最後にacommit;を付けて SQLTool を開きまし--autoCommitたが、これも機能しません...何が起こっているのですか?

4

1 に答える 1

4

hsqldb は、最後の接続を閉じる前に SHUTDOWN コマンドを要求するか、JDBC 接続プロパティ、shutdown=true を必要とします。ドキュメントを参照してください。

于 2011-12-04T00:53:00.670 に答える