84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
表中有两个字段,分别是a,b。
例如记录如下1,21,32,31,3
说明:1.其中1,3才是重复的数据。2.表里面是允许重复数据存在。
问题:当用户选择重复的数据不添加入库,这时如果用户添加的数据如下。
2,31,41,3
只能让1,4插入,其余都不可以,怎么实现这个需求?麻烦了
认证高级PHP讲师
この問題は、楽観的ロックを使用する方が簡単に解決できます。手順は次のとおりです: 1. (1, 3) タプルの md5 ハッシュ キー (hashedKey) を Redis に作成し、最初のクエリに対応するレコードを配置します。 redis; 2. レコードを挿入するときは、まず新しい (1,3) タプルの md5 ハッシュ キーを redis (楽観的ロック メカニズム) に挿入します。これは、キーが既に存在することを証明し、挿入操作を実行します。 ;3. ハッシュ アルゴリズムの例は次のとおりです。 リーリー
一意制約を使用する目的は、データベース層で重複データを制限することです。
この制限を放棄したい場合は、プログラミングを通じてのみ回避できます。
最も直接的な解決策は、データを挿入する前に、まずデータを検索して、一意性を考慮する必要があるフィールドが更新される値を持つフィールドが既に存在するかどうかを判断し、存在する場合は更新を中止し、そうでない場合は更新を実行します。しかし、それでも、繰り返しのデータ入力を避けることはできません。結局のところ、データの繰り返し入力の可能性が大幅に減少するとしか言えません。
この問題は、楽観的ロックを使用する方が簡単に解決できます。手順は次のとおりです:
=== 質問を詳しく見てみると、MySQL を使用して解決する必要があるようです ===1. (1, 3) タプルの md5 ハッシュ キー (hashedKey) を Redis に作成し、最初のクエリに対応するレコードを配置します。 redis;
2. レコードを挿入するときは、まず新しい (1,3) タプルの md5 ハッシュ キーを redis (楽観的ロック メカニズム) に挿入します。これは、キーが既に存在することを証明し、挿入操作を実行します。 ;
3. ハッシュ アルゴリズムの例は次のとおりです。 リーリー
一意制約を使用する目的は、データベース層で重複データを制限することです。
この制限を放棄したい場合は、プログラミングを通じてのみ回避できます。
最も直接的な解決策は、データを挿入する前に、まずデータを検索して、一意性を考慮する必要があるフィールドが更新される値を持つフィールドが既に存在するかどうかを判断し、存在する場合は更新を中止し、そうでない場合は更新を実行します。しかし、それでも、繰り返しのデータ入力を避けることはできません。結局のところ、データの繰り返し入力の可能性が大幅に減少するとしか言えません。
一意の制約を使用できる場合は、一意の制約を保証するように努めることをお勧めします。結局のところ、これはシステムの最後の保証層です。