既存の埋め込みDerbyデータベースがあり、このデータベースを作成するために必要なSQLコマンドをリバースエンジニアリングしたいとします。ユーザーがテーブルを選択してテーブルの作成スクリプトを取得できるようにすることで、これを行うツールがいくつかあります。 SQuirreL SQL、NetBeansなどはこの機能を許可します。私はこれを行うために取られたアプローチを理解することに興味があります。Derbyデータベースのデータベース作成コマンドをプログラムで取得する
この問題は、(JDBCを使用して)データベースからすべてのデータを(データベースの構造を破壊することなく)削除するという課題があります。これを行うには、通常、データベースの制約を削除し、SQL truncateコマンドを発行する必要があります。アプローチの概要についてはpostを参照してください。ただし、制約を削除すると構造が変更されます。
任意のデータベースの作成スクリプトをリバースエンジニアリングできる場合は、データベースをリフレッシュする(すべてのデータを消去する)必要がある場合は、作成スクリプトをキャプチャしてデータベースを削除してからスクリプトを使用してデータベースを再作成します。私はこれを任意のデータベースに対して実行したい。 JDBC準拠のデータベースで動作するJDBCのみを使用するアプローチが理想的です。
その他の関連するStackOverFlow Q/Aには、truncate all tables in MySQLの方法が含まれています。ここでの推奨事項は、MySQL固有のようですが、いくつかの洞察を提供しています。ダービーのためにturn of referential constraintsに行く方法はないようです。
おそらくすでにこれ用に開発済みのオープンソースAPIがあります。私は自分でやる前にいくつかのアイデアを探しています。
[DdlUtils](https://db.apache.org/ddlutils/)のようなものがあなたに役立つであろうか? –
DdlUtilsは明確な可能性を秘めています。それは私が調査するcreateTablesSql()メソッドを持っています。誰かがそれを経験しているかどうかを知ることに興味があります。 –