ハードディスクメンテナンス

投稿記事数[8700]以上!PC,旧ゲーム,カメラ,動画などを、アヤしゐ專門妖語を使ッて解説スル!

[MySQL] idを詰める(連番を振り直す)方法

      2015年01月12日


スポンサーリンク

数分毎に定期的にログを取得するようなプログラムを書き、DBに格納し始める。

だが、ログが膨大になったのでスリム化したい。

数分毎なので1日に多数のレコードがあるが、内容(atai)を調べると、その中の1つだけで事足りる場合。

<test_db_001>
id,date,time,atai
1,2015-01-01,00:10:00,10
2,2015-01-01,00:20:00,10
3,2015-01-01,00:30:00,10
4,2015-01-02,00:10:00,20
5,2015-01-02,00:20:00,20
6,2015-01-02,00:30:00,20

「その中の1つだけで事足りる」というのは、値は常に変化するが、その動きが小さいため、どれか1つのレコードを抜き出しても問題ないような種のデータである。

まずは年月日(date)でSELECTして抽出する。

SELECT * FROM `test_db_001` GROUP BY `date` ORDER BY `id` ASC ;

# 但しこの文でSELECTできるのは、dateが2015-01-01であればid(1,2,3)のどれであるかは不明なので、明確にするならそれに適したSELECT文を書くこと。

結果、id(1,4)が選択される。

<test_db_001>
id,date,time,atai
1,2015-01-01,00:10:00,10
4,2015-01-02,00:10:00,20

この状態でexportし、別名(test_db_002)でimportする(copyでも可)。

スポンサーリンク

しかし、これではidに隙間が生じており、使いにくい。

システムがidに依存しない場合、これを詰めてしまおう。

SET @i := 0 ;必須
UPDATE `test_db_002` SET id = (@i := @i +1) ;

これで、以下のようにidを詰める(連番の振り直し)ことができる。

<test_db_002>
id,date,time,atai
1,2015-01-01,00:10:00,10
2,2015-01-02,00:10:00,20

ここでAUTO_INCREMENTを変えることを忘れないように。

この場合では、最終のidが2なので、次のid(AUTO_INCREMENT)は3になる。

そして、test_db_002をtest_db_001にリネームして終了。

phpMyAdminが使える環境であれば、簡単な操作で実行可能だ。

exportもimportも画面上部から可能であり、上のSQL文(UPDATE…)も画面上部にある「SQL」で可能。

AUTO_INCREMENTとリネームは、画面上部の「操作」にある。

操作

元の(膨大な)ログが必要であれば、リネームするかexportするなどして保存しておくこと。

スポンサーリンク



sha-bc@336×280

sha-bc@336×280


sha-bc@336×280

sha-bc@336×280

  関連記事

mineo(マイネオ)のSIM
mineo(マイネオ)のSIMが届いたので使用を開始する

スポンサーリンク mineo(マイネオ)のSIMが届いた。 月間3GBのプランね …

B00TJKG25Y
TOSHIBA(東芝)の 無線LAN搭載 FlashAir III Wi-Fi SDHCカード 16GB Class10 がタイムセールで2,048円!

スポンサーリンク FlashAir(東芝,SDHC,16GB,Class10)が …

iPad Air2_Battery Care
iPad AirとiPad Air2のバッテリーの劣化が進行!

スポンサーリンク ワス(田舎者)は、iPad AirとiPad Air2の両方を …

B006IMFT32
WD(Western Digital)の 1TB ハードディスク WD10EURX がタイムセールで6,940円!

スポンサーリンク WESTERN DIGITAL WD AV-GP 3.5インチ …

B00URHSWYW
ASUSの 24型 ゲーミング液晶モニター FullHD(1920×1080) 3年保証 VX248H がタイムセールで19,930円!

スポンサーリンク ASUS Gamingモニター24型フルHDディスプレイ ( …

B00W6LAL0A
ELECOMの 無線LANルーター 親機 11ac/n/a/g/b 867+300Mbps WRC-F1167ACG がタイムセールで4,480円!

スポンサーリンク 有線LANはGigabit! ELECOM WIFI 無線LA …

B00S9SGMZM
ASUSTekの NVIDIA GeForce GTX960搭載ビデオカード(オーバークロック版) STRIX-GTX960-DC2OC-2GD5 がタイムセールで26,200円!

スポンサーリンク ASUSTek社製NVIDIA GeForce GTX960搭 …

B00LO3KR96
WD(Western Digital)の 6TB ハードディスク RED 3年保証 WD60EFRX がタイムセールで24,387円!

スポンサーリンク WD HDD 内蔵ハードディスク 3.5インチ6TB Red …

B010F4OBT6
NEC Aterm MR04LN 3B LTE対応 モバイルルーター OCN モバイル ONE マイクロSIM付 クレードル付属 が特選タイムセールで16,500円!

スポンサーリンク クレードル付属でコノ価格! OCN モバイル ONEのSIMが …

D25HWとC01HW
D25HW(emobile)とC01HW(ソフトバンクモバイル)の比較と違い – 海外ではSIMフリー?

スポンサーリンク D25HW(emobileのモバイルルーター)は、日本国内では …