2022-01-12に更新

さて、先日修正したプログラムによって、データベースのデータに欠損が生まれた。
その前はなかったはずなので、9日に採取したデータよりプライマリーキーのナンバーは増加しているのに、プライマリキーの数は減っているという状態になっている。

https://crieit.net/boards/manga-B/62795

どういうことか ?

おそらく、データベースに書き込む条件式とコラムのアップデートのペアのセットの順番が、想定したのと違う実行順序になったので、プライマリーキーはカウントアップされるが、データベースには書き込まれずに、そのプライマリーキーの id ナンバーの列がスキップされいるんだろう。

ということで、それを確める。

よーするに、id ナンバーが 1 から始まって途切れなく + 1 で最後のナンバーまですべて詰まっていることを求めているのに、そうなっていないから、不連続の id を探す。

sqlite> SELECT DISTINCT id +1 FROM tbl_bookdata
WHERE id + 1 NOT IN (SELECT DISTINCT id FROM tbl_bookdata);
559
917
1459
2440
2472
3375
3633
4201
5873
6056
6716
7426
7721
7734
8759
9467
9715
9911
10126
10412
11180
11182
11388
11393
12517
13305
14130
14871
15177
15816
15818
16086
16372
16539
18703
18960
19294
19302
21187
21435
23997
24001
24004
24489
24491
24691
25468
25886
26734
28806
29403
29494
29504
29845
30168
30867
30882
30931
31349
33072
33183
33501
33768
34274
34319
34749
34884
34956
35025
35143
35408
36202
36465
36578
36701
36770
36772
36923
37531
37533
37652
37914
38196
38252
38259
39516
39731
39733
39753
40649
41298
41360
42802
43547
43643
43857
44051
44292
44306
44408
44457
44623
45105
45143
45232
45545
45669
45915
46663
46678
46713
47559
47722
48145
49038
49478
49487
49695
50843
51246
51708
52883
52908
52910
53487
53833
54767
56668
56822
56830
56850
57266
57282
57388
57390
57485
57831
57927
58232
58519
58708
59308
59542
59546
60866
61491
61891
61959
62041
62130
62422
62607
62764
62796

で、これらはきっとアニメ化されているマンガだろう。

コミックのデータだけを取得したいために、プログラムを修正してアニメ化されて映像になっているもののデータはスキップしていくプログラムに修正していたので、そのスキップ最大値を 10 にセットしてプログラムを走らせていた。
なので、きっと 10 以上映像作品の情報があって、プログラムが取得を諦めたものだと考えられる。プログラムの作り方を間違ってなければ。
単純に、それで飛ばされた id の列ということだと思われる。

10 以上連続で映像商品のデータが存在するということは、映画ではなさそう。


tomato
所有者限定モードのためこのボードには投稿できません
コメント