私は、使用されていない/生成されていない/データベースに存在しない特定のレコードに対してID
(ユニークキー)を割り当てる必要があるクエリを記述する必要があります。テーブルで最初に未使用のIDを取得するにはどうすればよいですか?
要するに、特定のレコードに対してid
を生成し、それを印刷画面に表示する必要があります。
E. gは:
ID Name 1 abc 2 def 5 ghi
ので、事はそれがまだ発生していないされた直後のようID=3
を返す必要があり、かつid
のこの世代の後、私はこのデータを保存することですデータベーステーブルに戻る。
これはHWではありません。私はプロジェクトを行っています。私はこのクエリを書く必要があるので、これを達成するためにいくつかの助けが必要です。
このクエリを作成する方法、またはこれを達成する方法を教えてください。
ありがとうございました。
私は私の手順は次のようになります..私はデータベースとしてMySQLを使用しています ..ので、私はここに私のコメントを書いていますThatsなぜ,,
コメントを追加することはできませんよ: -
1)使用されていないデータベーステーブルからIDを取得します。
2)そうではありません。 (ウェブサイトベースのプロジェクト)のため、私は同時実行が起こらないようにしたいので、1人のユーザーに1つのIDが生成された場合、同じユーザーがIDを受け取ってそのIDのレコードを保存するまで、データベースをロックする必要があります。その後、他のユーザーはIDが存在しないものを取得することができます..(主な要件)..
私はこれらすべてをMySQLで実現できますか?また、Quassnoiの答えは価値があると思います。 MySQLで作業していますので、plzは私にとって新しいものであるため、クエリについて少し説明します。このクエリはMySQLで動作します。
あなたのプロジェクトにはどのようなRDBMSを使用していますか? – Quassnoi
ここでは並行性に注意してください。複数のユーザーがいる場合、Quassnoiのクエリを実行してからDBに結果を格納するまでに時間差があると、IDが重複する可能性があります。なぜ、RDBMSにあなたのID列を管理させるだけではないのですか? –
DDaviesBrackettが書いているように、これが宿題でない場合は、現実世界の重大な問題があります。2つのプロセスがクエリを実行し、回答を得た後、それぞれが重複レコードを挿入しようとします。これがちょうど質問に答えることであるならば、何か間隙があるか?それは違う。それで誰も気にするのはちょうど面白いです。 – Yishai