0

INSERT次の情報を含むデータベースがある場合、ID が入力されるように次のクエリを設定するにはどうすればよいですか? (この場合は 5 です。)

ここに画像の説明を入力

基本的には24になると順番に挿入していきます(例:30,31,32)

4

3 に答える 3

2

あなたはそうしない。とにかく、自動インクリメント整数ではありません。

列を自動インクリメント整数に変更することはできますが、各挿入を実行する前に次の ID を決定する必要があります。これにより、すべてのINSERTクエリが不必要に複雑になり、コードの保守がより困難になります。複数のスレッドが挿入を試み、次の ID を見つけてレコードを挿入する操作が完全にアトミックでない場合、重大な障害点が生じることは言うまでもありません。

なぜこれが必要なのですか?データベースで生成された主キーの整数がそのように連続している理由はありません。その目的はユニークであることであり、その目的を果たしている限り機能します。以前に削除されたレコードによって残された「穴を埋める」必要はありません。

データベースに別の列を追加し、その列にレコードを挿入するときに次の連続する番号を見つけるためのロジックを実行できますしかし、競合状態と不必要な複雑さという、前述と同じ問題に直面することになります。

于 2013-07-22T00:50:21.767 に答える
0

Idフィールドと値を指定するだけです

テーブル (I'd など) に値 (5 など) を挿入します。

ただし、動的に実行できるとは思いません。自動インクリメントの場合は、以前のタプルが削除されたかどうかにかかわらず、oncrementinf が保持されます。

于 2013-07-22T00:51:32.830 に答える