とりわけ、列「email」と「username」を持つ「users」テーブルがあります。アカウントが作成されたときに、同じユーザー名または電子メールのアカウント (行) が存在しないことを確認したいと考えています。現在、プログラムは電子メールまたはユーザー名の行数が同じかどうかをチェックし、カウントがゼロの場合は電子メールとユーザー名を含む行を挿入します。
ただし、これは 2 つの別個のクエリであり、これはマルチスレッド Web アプリであるため、競合状態が発生する可能性があり、その結果、同じユーザー名を持つ 2 つのアカウントが作成され、どちらかがログインしようとすると問題が発生します。
だから、私の質問は: 単一の SQL クエリで、そのような行がない場合 (つまり、同じユーザー名を持つ場合) にのみ行を挿入する方法はありますか?
不思議に思っている人のために、私はルビーで Sequel gem を使用しています。