MySQL での重複する日付: 競合検出を使用した挿入
問題:
データベースについて考える特定の acc_id の可用性を表す列 start_date と end_date を含むテーブル。目的は、ユーザーが既存の可用性範囲と重複する新しい可用性範囲を作成できないようにすることです。
質問:
単一の MySQL 挿入ステートメント内でこの検証を実行することは可能ですか? ?
答え:
残念ながら、プレーンな MySQL のみを使用すると、単一の挿入ステートメントで日付が重複しないようにすることは現実的ではありません。これは、MySQL には、データベース エンジン自体によって検証を強制できる CHECK 制約のサポートがないためです。
オプション:
代替データベース オプション:
別のデータベース エンジンを検討できる場合は、PostgreSQL CHECK 制約のサポートを提供し、目的の検証を簡単に実行できます。
注:
代替データベースを使用する場合や、アプリケーション ロジックに検証を実装する場合でも、挿入操作の後に影響を受ける行数を確認することを常にお勧めします。これは、日付の重複に関係しない可能性のある潜在的な障害を検出するのに役立ちます。
以上が質問と回答の形式と MySQL への焦点を念頭に置いて、記事のタイトル候補をいくつか示します。 短く直接的: * MySQL は単一の挿入統計で日付の重複を防ぐことができますかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。