sql >> Databasteknik >  >> RDS >> Mysql

Finns det något sätt att TRUNCATE de flesta tabeller i ett MySQL-schema?

Jag tror att du måste skriva ett manus på det språk du gillar mest. Du kan få en lista över tabellerna i schemat från information_schema db, sedan iterera över dem och trunkera alla du känner för.

Frågan skulle vara något i stil med:

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

Redigera :Här är ett exempel med 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) }


  1. Hur fyller man ut nollor för ett nummerfält?

  2. ActiveRecord kapslad SELECT

  3. Heroku Postgres:För många kontakter. Hur dödar jag dessa anslutningar?

  4. Bearbeta utf-8-data från MySQL i C++ och ge resultatet tillbaka