Credo che dovrai scrivere una sceneggiatura nella lingua che preferisci. Puoi ottenere un elenco delle tabelle nello schema dal db information_schema, quindi scorrere su di esse, troncando quelle che desideri.
La query sarebbe qualcosa del tipo:
SELECT table_name FROM information_schema.tables WHERE table_schema = 'test' AND table_name NOT IN ('table1', 'table2');
Modifica :Ecco un esempio usando 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) }