回答編集履歴

2

AUTO_INCREMENTについて説明追加

2017/11/16 16:49

投稿

tanat
tanat

スコア18713

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

締めを追記

2017/11/16 16:49

投稿

tanat
tanat

スコア18713

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
+ あたりかなと思います。