Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Gibt es eine Möglichkeit, die meisten Tabellen in einem MySQL-Schema abzuschneiden?

Ich glaube, Sie müssen ein Drehbuch in der Sprache schreiben, die Ihnen am besten gefällt. Sie können eine Liste der Tabellen im Schema aus der information_schema-Datenbank abrufen, dann über sie iterieren und alle nach Belieben kürzen.

Abfrage wäre so etwas wie:

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

Bearbeiten :Hier ist ein Beispiel mit 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) }