データベース移行プログラムで作業していますが、テーブルがすでに作成されている別のデータベースに1つのデータベースを移行しようとしています。より具体的には、私はほぼ同じテーブルを持つ2つのデータベースを持っており、1つはいっぱいで、もう1つは空です。私の問題は、移行テーブルの値がアルファベット順に処理されていることです。いくつかのテーブルには外部キーがあります。これらのテーブルが外部キーテーブルのアルファベットの前に来ると、私は値を挿入できません。 javaまたはpostgresqlで外部キーチェックを無効にする方法はありますか?どんな助けも素晴らしいだろう。外部キー制約のためにデータベースの挿入が失敗する
2
A
答えて
2
私が正しければ、postgresqlでfkを無効にすることはできません。 @mcfinniganは言ったように、挿入を開始する前にfkを落とすことができます。あるいは、DEFERRABLEキーを使って制約を再作成することもできます。 postgresql CREATE TABLE documentation.
DEFFERABLEは、トランザクションが終了するまでfkがチェックされないことを意味します。
2
参照整合性は、JDBCプロパティではなくDBプロパティです。インポートを実行する前に明示的にデータベースのFK制約を削除または無効にしてから、後で再び有効にする必要があります。
データの階層構造を決定し、最初に独立したレコードで始まるデータを挿入し、挿入中に従属レコードをこれらのレコードにリンクすることをお勧めします。
+0
ありがとうございました。私は最初のものを試してみる。 2番目はとても複雑なことがあります。 – mbaydar
関連する問題
- 1. MySQL UPDATEの外部キー制約が失敗しました
- 2. 外部キー制約にSqoopエクスポートが失敗しました
- 3. 外部キー制約が失敗しました
- 4. Sqlite3で外部キー制約が失敗しました
- 5. 外部キー制約が1対多で失敗する
- 6. NULL可能フィールドで外部キー制約が失敗する
- 7. 外部キー制約が失敗する(MySQL)
- 8. 外部制約キーに失敗しました
- 9. テーブルに行を挿入する際の外部キー制約
- 10. 不要な外部キー制約の失敗
- 11. LINQ to Entity:外部キー制約のためにテーブルの切り捨てが失敗する
- 12. 外部キー制約が失敗するのはなぜですか?
- 13. 外部キー制約付きテーブルへの高速挿入
- 14. データベースをインポートするときに外部キーの制約がdoctrineエンティティで失敗する
- 15. 挿入に失敗しました:子行を追加または更新できません:外部キー制約が失敗しました
- 16. 外部キー制約がエラー
- 17. 外部キー制約
- 18. Sqlite外部キーの挿入が失敗する必要があります
- 19. シーケンス生成IDを使用するマルチテーブル挿入が外部キー違反のために失敗する
- 20. mysqlの外部キー制約付きの挿入に関する提案
- 21. SQLの外部キー制約
- 22. SqlAlchemyの外部キー制約
- 23. フラスコの外部キー制約
- 24. 外部キーの制約エラー
- 25. ストアドプロシージャの外部キー制約
- 26. Postgresql:外部キー制約のためのアクションを変更する
- 27. PHP/MySQLに値を挿入する際の外部キー制約エラー
- 28. 代替の外部キーを使用したデータベースの制約
- 29. 外部キーの失敗
- 30. 制約のためにOracleのimp表が失敗する
テーブルの遅延を設定できる更新ステートメントはありますか? – mbaydar
テーブルの制約を変更することはできません。 alter table文で追加または削除することができます。 ALTER TABLE xxx ADD CONSTRAINT fk_xxx [...]またはALTER TABLE xxx DROP CONSTRAINT fk_xxx。制約定義にDEFFERABLEキーを与えてテーブルを再作成する必要があります。次に、DEFFERABLEキーでcontraintを作成する場合は、 "SET CONSTRAINTS DEFERRED"を呼び出す必要があります。 – Aykut