1

hsqldb をいくつかのデフォルト データで初期化しようとしていますが、ID 列とタイムスタンプ列に問題があるようです。

「スクリプト」と言ったとき、おそらく何を意味するのか明確ではなかったことに気付きました。起動時にデータベースを生成するために hsqldb に渡すコマンド ライン引数を意味しています。DbVisualiser またはその他のデータベース管理ツール内でクエリを正常に実行できます。

次の定義を持つテーブルがあります。

create table TableBob (
      ID int NOT NULL identity , 
      FieldA varchar(10) NULL, 
      FieldB varchar(50) NOT NULL, 
      INITIAL_DT timestamp DEFAULT CURRENT_TIMESTAMP NOT NULL);

スクリプトを使用してこのテーブルを正常に作成できますが、レコードを挿入しようとしても機能しません。以下は、ID および INITIAL_DT フィールドが Identity および Default 列であるため、挿入に有効な SQL と見なすものです)。奇妙なことに、NOT NULL として定義されているにもかかわらず、すべての列に null が挿入されます....

例えば
INSERT INTO TableBob (FieldA, FieldB) VALUES ('testFieldA', 'testFieldB');

ここに画像の説明を入力

ご協力いただきありがとうございます

4

1 に答える 1

0

HSQLDB の DatabaseManagerSwing を試してみてください (hsqldb.jar をダブルクリックしてデータベース マネージャーを起動できます)。最初に CREATE TABLE ステートメントを実行し、次に INSERT ステートメント、最後に SELECT ステートメントを実行します。

正しい結果が表示されるはずです。

スクリプトを使用してデータを挿入する場合は、HSQLDB ディストリビューション zip パッケージで入手できる SqlTool.jar を使用します。ガイドを参照してください: http://hsqldb.org/doc/2.0/util-guide/

于 2013-02-07T23:01:21.800 に答える