住所用のmysqlデータベーステーブルがあり、郵便番号/番地/町の個別の列が含まれています。
列の 1 つだけではなく、完全なテーブル エントリが一意であることを確認するにはどうすればよいですか?
住所用のmysqlデータベーステーブルがあり、郵便番号/番地/町の個別の列が含まれています。
列の 1 つだけではなく、完全なテーブル エントリが一意であることを確認するにはどうすればよいですか?
で複合キーを作成し{post code, street, town}ます。
キーは、プライマリ (PRIMARY KEY) または代替 (UNIQUE 制約) にすることができます。
ところで、2 つtownの異なる が同じものを持つことはできpost codeますか? そうでない場合はtown、キーに は必要ありません。town実際、別のテーブルに「抽出」してモデルを正規化することを検討してください。
INSERTデータベース テーブルには複数の一意のキーがある場合があるため、テーブルに設定した制約に違反するクエリはすべて拒否されます。
他の列を一意に設定するだけで、問題が解決するはずです。
mysql では、n 個のフィールドまたは列に対して一意のキーを使用できます。この列を unique として宣言すると、mysql は重複の制約をチェックします。詳細については、このmysql の一意のキーをお読みください
「UNIQUE および PRIMARY KEY 制約はどちらも、列または列のセットの一意性を保証します。」
しかし、ユーザーを快適にするためのフロントエンドの検証をお勧めします (念のため、考えていませんでした;))