2

私はデータベース移行プログラムに取り組んでおり、あるデータベースを、テーブルが既に作成されている別のデータベースに移行しようとしています。より具体的には、ほぼ同じテーブルを持つ2つのデータベースがあり、1つはいっぱいで、もう1つは空です。私の問題は、移行テーブルの値がアルファベット順に処理されていることです。一部のテーブルには外部キーがあり、これらのテーブルが外部キー テーブルのアルファベット順で前にある場合、値を挿入できません。javaまたはpostgresqlで外部キーチェックを無効にする方法はありますか. どんな助けでも素晴らしいでしょう。

4

2 に答える 2

2

参照整合性は DB プロパティであり、JDBC プロパティではありません。インポートを実行する前に、データベースの FK 制約を明示的に削除または無効にし、後で再度有効にする必要があります。

データの階層構造を決定し、最初に独立したレコードからデータを挿入し、次に挿入時に依存レコードをこれらにリンクすることをお勧めします。

于 2012-04-04T09:57:19.473 に答える
2

私が正しければ、postgresql で fk を無効にする可能性はありません。@mcfinnigan が言ったように、挿入を開始する前に fk を削除するか、DEFERRABLE キーで制約を再作成できます。postgresql CREATE TABLE のドキュメントを参照してください。

DEFFERABLE は、トランザクションが終了するまで fk がチェックされないことを意味します。

于 2012-04-04T10:02:39.710 に答える