マスタレコードがFirebirdデータベースに子レコードを持つ場合、そのレコードの削除を制限する方法を教えてください。子レコードがある場合、マスターレコードの削除を制限する
0
A
答えて
2
子テーブルから親テーブルに外部キーを追加する必要があります。外部キーのデフォルトの動作により、子レコードがある場合、親テーブルからのレコードの削除が防止されます。例えば
create table parent (
id integer generated by default as identity primary key
);
create table child (
id integer generated by default as identity primary key,
parent_id integer references parent(id)
);
これもparent
に存在しないparent_id
値(null
以外)との子にレコードを追加することを防止することができます。 on update
およびon delete
句を使用して、外部キー制約の動作をさらに変更できます。 Firebirdの言語リファレンス(constraints)を参照してください。たとえば、on delete cascade
を使用すると、親レコードが削除された場合、子テーブルから行が削除されます。
外部キーは、プライマリキーまたはユニークキーのみを指すことができます。
上記のコードは意図的に短く、主キー制約と外部キー制約の両方に名前付き制約を使用することを検討してください。これにより、将来のメンテナンスが簡単になります。詳細はlanguage referenceを参照してください。
関連する問題
- 1. 子レコードが存在しない場合、親レコードを削除するCONSTRAINT PostgreSQL
- 2. php/PDOにレコードが存在する場合は削除する
- 3. 子レコードを削除すると、エンティティの親レコードが削除されます
- 4. 内部結合があるテーブルからレコードを削除する
- 5. レコードの数が> 2の場合、レコードをテーブルに挿入する前後の古いレコードを削除する
- 6. Entity Frameworkの5 - 削除する子レコード
- 7. 制限グループを削除する方法
- 8. スイッチケースの中にある場合は、ケースを制限する
- 9. サブスクリプションが既にデータセットを制限している場合、データを制限する必要がありますか?
- 10. 条件で左結合を使用する場合のHibernate子コレクションの制限
- 11. MagnoliaでMultiValueFieldDefinitionを使用する場合の子の数を制限する
- 12. 子divが空の場合、親divを削除します。
- 13. 子ノードが空の場合に親ノードを削除します。
- 14. 子が存在する場合に親の削除を停止する方法
- 15. 親レコードが削除されたときに子レコードを削除しない
- 16. Documentum - リレーション内のレコードを削除せずに子レコードを削除することができます
- 17. C#WPF:外部キー制約のあるレコードを削除する(Access db)
- 18. ソフト削除されたレコードをIDで照会する場合を除いて削除します。
- 19. レコードIDに基づいて子ウィンドウを制限する
- 20. NSTemporaryDirectoryのファイルを削除する場合
- 21. sedコマンドからArrayを使用する場合のMongoDB $演算子の制限
- 22. APKのインストール数を電子メールで送信する場合に制限する方法はありますか?
- 23. apiがnull配列を返す場合に子要素を削除する
- 24. mysqldumpレコードの範囲を制限する
- 25. sqliteのレコードを制限する
- 26. テキストがセクション全体削除セクションにある場合はVba
- 27. 行に値がある場合、テキストファイルの前の行を削除する
- 28. sqlレコードが条件を満たすレコードがある場合は無視する
- 29. テーブルを削除する場合は、外部キー/インデックスを個別に削除する必要があります。
- 30. SQL Server:ドロップ制約がある場合
外部キーを追加します。 – lad2025