ハードディスクメンテナンス ブログ

投稿記事数捌阡貳陌以上!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

  関連記事

B00MWRLH6A
GIGABYTE(ギガバイト)の ビデオカード Geforce GTX750Ti搭載 GV-N75TOC-2GL がタイムセールで13,877円!

GIGABYTE ビデオカード Geforce GTX750Ti搭載 ロープロフ …

B00VX82KBK
Transcendの SSD 1TB SATA3 6Gb/s TS1TSSD370S 3年保証 がタイムセールで38,780円!

Transcend SSD 1TB 2.5インチ SATA3 6Gb/s MLC …

B01BL4BSRC
Samsungの 超小型USBメモリ 32GB USB3.0 MUF-32BB/EC がタイムセールで1,881円!

超小型なので、トヴィ出しを避けたい場合に! 関連:RCS-U500K-Sの取手に …

Acer KA270Hのプロパティ_KA270HAbmidx
KA270HAbmidx(27型液晶モニター)のICCプロファイル/infファイルを探す

Acerの27型液晶モニターであるKA270HAbmidxを購入して使っている。 …

no image
Apacheのサーバー情報(ServerSignature)非表示設定 (Apache2.2.22 ,Debian7.4)

Apache/2.2.22 (Debian7.4) エラーページに Apache …

B01CCMV8NG
NI-760SとOCN モバイル ONEのSIMのセットが8,800円!

NI-760Sという、LTE対応のモバイルルーターと、OCN モバイル ONEの …

Intel Driver Update Utility
Intel Driver Update Utilityのワケの分からない事案wwwww

Intel Driver Update Utilityを使うと、PC内のInte …

B003YUB660
Logicool(ロジクール)の ウェブカム 120万画素 C270 がタイムセールで1,193円!

LOGICOOL ウェブカム HD画質 120万画素 C270 限定数は100台 …

(05)代替処理済のセクター_ST33000650NS
ハードディスクがらみの問題(電源,電力供給,ケーブル,SATA,BIOS,UEFI,リセット,劣化,ST33000650NS)

イチレン(ICHI-LENE)のハードディスクグァルァムィの問題の解決がついてな …

B00CHABQRW
NETGEARの ReadyNAS102(2台版) ネットワークストレージ 3年保証 RN10200-100AJS がタイムセールで11,952円!

ReadyNAS104(4台版)は私も使っている。 関連:ReadyNAS関連の …