sql >> Base de Datos >  >> RDS >> Mysql

¿Hay alguna manera de TRUNCAR la mayoría de las tablas en un esquema MySQL?

Creo que tendrás que escribir un guión en el idioma que más te guste. Puede obtener una lista de las tablas en el esquema de la base de datos information_schema, luego iterar sobre ellas, truncando las que desee.

La consulta sería algo como:

SELECT table_name FROM information_schema.tables WHERE table_schema = 'test' AND table_name NOT IN ('table1', 'table2');

Editar :He aquí un ejemplo 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) }