私はあなたがあなたが最も好きな言語でスクリプトを書かなければならないと信じています。 information_schema dbからスキーマ内のテーブルのリストを取得し、それらを反復処理して、必要に応じて切り捨てることができます。
クエリは次のようになります:
SELECT table_name FROM information_schema.tables WHERE table_schema = 'test' AND table_name NOT IN ('table1', 'table2');
編集 :Perlを使用した例を次に示します:
use strict;
use warnings;
use DBI;
my $dbh = DBI->connect("some_dsn");
my $sth = $dbh->prepare(q{SELECT table_name FROM information_schema.tables WHERE table_schema = 'test' AND table_name NOT IN ('table1', 'table2')});
$sth->execute();
$sth->bind_columns(\my $table_name);
while($sth->fetch) { $dbh->do(q{TRUNCATE TABLE } . $table_name) }