Epgrecの録画一覧から一括削除

1年くらいWEB画面上から録画削除処理してなかったら大量に残ってたので、ぽちぽち1件ずつ削除する野面倒になってDB直接弄ってみることに

$ mysql -u root -p

でログイン。

データベース何があるか確認

$ show databases;

Database
information_schema
hoge
mysql
test

hogeデータベースで確保している場合、テーブルの内容確認

$ use hoge;

$ show tables;

Tables_in_hoge
Recorder_categoryTbl
Recorder_channelTbl
Recorder_keywordTbl
Recorder_logTbl
Recorder_programTbl
Recorder_reserveTbl

とテーブル確認すると「Recorder_reserveTbl」とあるのでこれをチェック。

$ describe Recorder_reserveTbl;

FieldTypeNullKeyDefaultExtra
idint(11)NOPRINULLauto_increment
channel_discvarchar(128)NOMULnone
channel_idint(11)NO0
program_idint(11)NO0
typevarchar(8)NOGR
channelvarchar(10)NO0
titlevarchar(512)NOnone
descriptionvarchar(512)NOnone
category_idint(11)NO0
starttimedatetimeNOMUL1970-01-01 00:00:00
endtimedatetimeNO1970-01-01 00:00:00
jobint(11)NO0
pathblobYESNULL
completetinyint(1)NO0
reserve_discvarchar(128)NOnone
autorecint(11)NO0
modeint(11)NO0
dirtytinyint(1)NO0

と、Field構成が確認できるので、これを元にデータを参照に

$ select id, starttime, complete from Recorder_reserveTbl where complete = 1 and id < 1000 order by id asc;

1
2
3
4
5
6
7

| 2488 | 2015-05-02 01:44:50 | 1 |
| --- | --- | --- |
| 2489 | 2015-05-03 17:29:50 | 1 |
| 2490 | 2015-05-03 22:29:50 | 1 |
| 2491 | 2015-05-03 22:59:50 | 1 |
| 2493 | 2015-05-03 00:29:50 | 1 |

な感じでヒットしたデータが列ぶので、消したい条件でDeleteする

$ delete from Recorder_reserveTbl where complete = 1 and id < 2500;

こんな感じでOK

基本的にid順に収録しているようだったのでidで削除したけど、starttimeで日付指定して削除する方が安全かな

$ delete from Recorder_reserveTbl where starttime < ‘2015-05-15’;

な感じで。

comments powered by Disqus