トリガーと制約を使用して MySQL のレコード数を制限する
P粉807397973
P粉807397973 2023-11-14 13:35:02
0
4
1030

ユーザー ID と親友のユーザー ID を保存する BFFs というテーブルがあり、異なるユーザーごとにテーブルの親友を 3 人に制限したいと考えています。

テーブル構造が次の場合を意味します:

リーリー

記録は次のとおりです:

リーリー

この場合、ID 3286 のユーザーには、(3286, xyzt) などの新しいレコードを持つことを許可しないでください。

このトリガーを作成しましたが、よくわかりません:

リーリー

アサーションまたはトリガーを介してリレーショナル テーブル上でそれを再強化するにはどうすればよいですか?

###ありがとう###
P粉807397973
P粉807397973

全員に返信(5)
P粉113938880

ハイパーキューブの答え (DRI を利用してルールを適用する) に加えて、MIN を使用して LEFT JOIN を実行して、ユーザー ID ごとに 3 つのテーブルから 1、2、または 3 の次のものを取得することもできます。

いいねを押す +0
徐涛

ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ

いいねを押す +0
徐涛

ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ ソファ

いいねを押す +0
P粉769413355

別の列 FriendNumber と外部キー制約を、ちょうど 3 行を含む参照テーブルに追加します。

リーリー

次に、次の内容を追加できます:

リーリー

または、@gbn が提案したように、次のようにします (列が自動入力されます):

リーリー
いいねを押す +0
徐涛

Asafa は法律を遵守し、メッセージを送信します Asafa は法律を遵守し、メッセージを送信します Asafa は法律を遵守し、メッセージを送信します Asafa は法律を遵守し、メッセージを送信します

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート