回答編集履歴
2
AUTO_INCREMENTについて説明追加
test
CHANGED
@@ -1,6 +1,16 @@
|
|
1
1
|
勝手にIDが増えていくのはIDフィールドに[AUTO_INCREMENT属性](https://dev.mysql.com/doc/refman/5.6/ja/example-auto-increment.html)
|
2
2
|
|
3
3
|
が付与されているからと思われます。
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
AUTO_INCREMENT属性がついているIDの場合、テーブル自体に次に振られるべきIDが記録されており、insertされる度に1増えていき、レコードが削除されても減ることはありません。
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
なのでたとえば、
|
12
|
+
|
13
|
+
3件追加→3件削除→1件追加 とした場合、テーブルに残るのはID4のレコードになります。
|
4
14
|
|
5
15
|
|
6
16
|
|
1
締めを追記
test
CHANGED
@@ -16,4 +16,10 @@
|
|
16
16
|
|
17
17
|
0. 自力でIDを採番する
|
18
18
|
|
19
|
-
insertするタイミングで空いているIDを自力で探して、IDを指定してinsertします。1番目のお勧め理由によって個人的には嫌いな方法です。
|
19
|
+
deleteは現状のまま行い、insertするタイミングで空いているIDを自力で探して、IDを指定してinsertします。1番目のお勧め理由によって個人的には嫌いな方法です。
|
20
|
+
|
21
|
+
0. deleteしたタイミングでIDを詰める。途中のIDを削除した場合に、それより後ろのIDをすべて-1してupdateします。普通はやらないです。
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
あたりかなと思います。
|