既存のテーブルの derby.storage.pageSize プロパティを変更することは可能ですか? または、データをエクスポートしてドロップし、新しいプロパティでテーブルを再作成してから、データを再インポートする必要がありますか?
1 に答える
ドキュメントは次のように述べています。
テーブルまたはインデックスの作成中に使用されるテーブルまたはインデックスのディスク上のデータベース ページのページ サイズをバイト単位で定義します。CREATE TABLE または CREATE INDEX ステートメントを発行する前に、このプロパティーを設定してください。この値は、新しく作成されたコングロマリットの存続期間に使用されます。
そのため、テーブルの作成時にのみ使用され、テーブルが削除されるまで有効です。
削除、作成、再インポートする必要があります。
Bryan Pendleton が言及しましcreate table as select
たが、現時点ではこれは完全には機能しません。データを自動的に挿入することはできません。
テーブルを作成 ... AS ...
CREATE TABLE ステートメントの別の形式を使用すると、クエリを提供することで、列名や列のデータ型を指定できます。クエリ結果の列は、新しいテーブルに列を作成するためのモデルとして使用されます。
新しいテーブルに列名が指定されていない場合、クエリ式の結果のすべての列を使用して、新しいテーブルに対応するデータ型の同じ名前の列が作成されます。新しいテーブルに 1 つ以上の列名が指定されている場合、同じ数の列がクエリ式の結果に存在する必要があります。これらの列のデータ型は、新しいテーブルの対応する列に使用されます。
WITH NO DATA 句は、クエリ式を評価した結果のデータ行を使用しないことを指定します。クエリ結果の列の名前とデータ型のみが使用されます。WITH NO DATA 句を指定する必要があります。将来のリリースでは、Derby が変更され、WITH DATA 文節を指定できるようになる可能性があります。これは、クエリ式の結果を新しく作成されたテーブルに挿入する必要があることを示します。ただし、現在のリリースでは、ステートメントの WITH NO DATA 形式のみが受け入れられます。