Je crois que vous devrez écrire un script dans la langue que vous aimez le plus. Vous pouvez obtenir une liste des tables du schéma à partir de la base de données information_schema, puis les parcourir en tronquant celles que vous souhaitez.
La requête ressemblerait à :
SELECT table_name FROM information_schema.tables WHERE table_schema = 'test' AND table_name NOT IN ('table1', 'table2');
Modifier :Voici un exemple utilisant 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) }