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

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

  関連記事

B01DOWUC08
LGの 27型 液晶モニター フルHD(1920×1080) AH-IPS 非光沢 27MP38VQ-B がタイムセールで18,140円!

27型 AH-IPS でコノ価格! LG 27MP38VQ-B ディスプレイ モ …

OS X Yosemite
MacBookAir(13型,Mid,2011)に寄席見手(OS X Yosemite)入れたったwwwwwwwwww

先日書いた、Appleの発表会の件。 事前の予想通り、iPad Air 2 や …

ユーザーカラー(2407WFP)
2407WFP(DELL,24型,1920×1200)の色調整

DELLの液晶モニター(2407WFP)の白色が若干色が赤いので、調整を行った。 …

B01DOWUCG2
ASUSの 21.5型 液晶モニター フルHD(1920×1080) VA 非光沢 3年保証 VS229HA がタイムセールで10,980円!

ASUS ディスプレイ モニター 21.5型 ( VA / 178°広視野角 / …

電源接続時はスリープしないと設定してある
CF-R8 Windows10 フリーズ

CF-R8にWindows10を入れたら、電源接続使用なのに途中で画面暗転しフリ …

B00ITGD31A
AVerMediaの HDMIビデオキャプチャー(CV710) がタイムセールで18,500円!

AVerMedia USB3.0対応HDMIキャプチャー CV710 日本正規代 …

B0109FQV12
Philipsの 23型液晶モニター AH-IPSパネル FullHD(1920×1080) 5年保証 237E7QDSB/11 がタイムセールで15,800円!

Philips 23型ワイド液晶ディスプレイ (AH-IPSパネル/5年間保証) …

no image
ライブドアブログでUniversal Analyticsを設定する方法

Universal Analyticsの「プロパティ設定」の「デフォルトURL」 …

B00U9ZJR0U
LGの 27型 AH-IPS非光沢 フルHD 液晶モニター 27MP37VQ-B がタイムセールで19,980円!

27型 AH-IPS でコノ価格! LG Electronics Japan 2 …

B01DK9IR8Y
LGの 27型 4Kモニター 3840×2160 AH-IPS 非光沢 27UD68-P がタイムセールで58,480円!

LG 27UD68-P IPSディスプレイ モニター27インチ 4K/ブラック/ …