1

住所用のmysqlデータベーステーブルがあり、郵便番号/番地/町の個別の列が含まれています。

列の 1 つだけではなく、完全なテーブル エントリが一意であることを確認するにはどうすればよいですか?

4

3 に答える 3

2

複合キーを作成し{post code, street, town}ます。

キーは、プライマリ (PRIMARY KEY) または代替 (UNIQUE 制約) にすることができます。


ところで、2 つtownの異なる が同じものを持つことはできpost codeますか? そうでない場合はtown、キーに は必要ありません。town実際、別のテーブルに「抽出」してモデルを正規化することを検討してください。

于 2012-07-17T19:15:02.490 に答える
1

INSERTデータベース テーブルには複数の一意のキーがある場合があるため、テーブルに設定した制約に違反するクエリはすべて拒否されます。

他の列を一意に設定するだけで、問題が解決するはずです。

于 2012-07-17T18:07:36.910 に答える
1

mysql では、n 個のフィールドまたは列に対して一意のキーを使用できます。この列を unique として宣言すると、mysql は重複の制約をチェックします。詳細については、このmysql の一意のキーをお読みください

「UNIQUE および PRIMARY KEY 制約はどちらも、列または列のセットの一意性を保証します。」

しかし、ユーザーを快適にするためのフロントエンドの検証をお勧めします (念のため、考えていませんでした;))

于 2012-07-17T18:10:15.883 に答える