ホームページ >バックエンド開発 >PHPチュートリアル >mysql挿入の問題
2 人のユーザーが同時にデータを挿入し、
テーブルセット名='tom',num=2に挿入
テーブルセット名='jack',num=2に挿入
しましたが、ビジネスロジックでは許可されていません繰り返し表示される数値。
MySQL による重複データの挿入を制限するにはどうすればよいですか?
1. ジョイント一意インデックスを追加しますが、プログラムはエラーを報告しますが、これは実行不可能と思われます。
他の方法はありますか?
2 人のユーザーが同時にデータを挿入し、
テーブルセット名='tom',num=2に挿入
テーブルセット名='jack',num=2に挿入
しましたが、ビジネスロジックでは許可されていません繰り返し表示される数値。
MySQL による重複データの挿入を制限するにはどうすればよいですか?
1. ジョイント一意インデックスを追加しますが、プログラムはエラーを報告しますが、これは不可能と思われます。
他の方法はありますか?
一意のインデックスを使用し、挿入シナリオでトランザクション処理を使用し、重複する値がある場合はトランザクション リマインダーをスローします。
プログラムがエラーを報告しますか?
対応する例外をキャッチして、戻ってビジネスの説明を行うだけです。
insert ignore
まさか
つまり、各挿入の前に、テーブルの num フィールドに挿入する値があるかどうかを確認する必要があり、同時実行性も考慮する必要があります。右? mysql トランザクションまたは mysql ロック テーブル メカニズムを使用します。
アプリケーションがデータベースのエラー情報を取得し、対応する説明を提供できるように、データベースに独自の検証メカニズムを持たせることをお勧めします。