回答編集履歴
3
追記
answer
CHANGED
@@ -6,4 +6,6 @@
|
|
6
6
|
>
|
7
7
|
> すべてのロックモード (0、1、および 2) では、自動インクリメント値を生成したトランザクションがロールバックされると、**これらの自動インクリメント値が「失われます」**。「INSERT のような」ステートメントが完了したかどうか、およびそれを含むトランザクションがロールバックされたかどうかに関係なく、**自動インクリメントカラムの値は一度生成されたら、ロールバックできません。**このような失われた値は再使用されません。したがって、テーブルの AUTO_INCREMENT カラムに格納されている値にはギャップが存在する可能性があります。
|
8
8
|
|
9
|
-
欠番無しの連番を保証したいなら、排他制御を行う発番処理を自作するしかありません。
|
9
|
+
欠番無しの連番を保証したいなら、排他制御を行う発番処理を自作するしかありません。
|
10
|
+
|
11
|
+
見た目上の連番なら、[row_number()](https://dev.mysql.com/doc/refman/8.0/en/window-function-descriptions.html#function_row-number)を使用すれば可能です。
|
2
推敲
answer
CHANGED
@@ -4,6 +4,6 @@
|
|
4
4
|
|
5
5
|
> 「失われた」自動インクリメント値とシーケンスギャップ
|
6
6
|
>
|
7
|
-
> すべてのロックモード (0、1、および 2) では、自動インクリメント値を生成したトランザクションがロールバックされると、これらの自動インクリメント値が「失われます」。「INSERT のような」ステートメントが完了したかどうか、およびそれを含むトランザクションがロールバックされたかどうかに関係なく、自動インクリメントカラムの値は一度生成されたら、ロールバックできません。このような失われた値は再使用されません。したがって、テーブルの AUTO_INCREMENT カラムに格納されている値にはギャップが存在する可能性があります。
|
7
|
+
> すべてのロックモード (0、1、および 2) では、自動インクリメント値を生成したトランザクションがロールバックされると、**これらの自動インクリメント値が「失われます」**。「INSERT のような」ステートメントが完了したかどうか、およびそれを含むトランザクションがロールバックされたかどうかに関係なく、**自動インクリメントカラムの値は一度生成されたら、ロールバックできません。**このような失われた値は再使用されません。したがって、テーブルの AUTO_INCREMENT カラムに格納されている値にはギャップが存在する可能性があります。
|
8
8
|
|
9
9
|
欠番無しの連番を保証したいなら、排他制御を行う発番処理を自作するしかありません。
|
1
追記
answer
CHANGED
@@ -4,4 +4,6 @@
|
|
4
4
|
|
5
5
|
> 「失われた」自動インクリメント値とシーケンスギャップ
|
6
6
|
>
|
7
|
-
> すべてのロックモード (0、1、および 2) では、自動インクリメント値を生成したトランザクションがロールバックされると、これらの自動インクリメント値が「失われます」。「INSERT のような」ステートメントが完了したかどうか、およびそれを含むトランザクションがロールバックされたかどうかに関係なく、自動インクリメントカラムの値は一度生成されたら、ロールバックできません。このような失われた値は再使用されません。したがって、テーブルの AUTO_INCREMENT カラムに格納されている値にはギャップが存在する可能性があります。
|
7
|
+
> すべてのロックモード (0、1、および 2) では、自動インクリメント値を生成したトランザクションがロールバックされると、これらの自動インクリメント値が「失われます」。「INSERT のような」ステートメントが完了したかどうか、およびそれを含むトランザクションがロールバックされたかどうかに関係なく、自動インクリメントカラムの値は一度生成されたら、ロールバックできません。このような失われた値は再使用されません。したがって、テーブルの AUTO_INCREMENT カラムに格納されている値にはギャップが存在する可能性があります。
|
8
|
+
|
9
|
+
欠番無しの連番を保証したいなら、排他制御を行う発番処理を自作するしかありません。
|