2009-06-01 5 views

답변

1

저는 여러분이 가장 좋아하는 언어로 스크립트를 작성해야한다고 생각합니다. information_schema db에서 스키마의 테이블 목록을 가져온 다음 반복하여 반복하여 원하는대로자를 수 있습니다.

쿼리가 될 것 같은 뭔가 :

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

편집가 : 여기에 펄을 사용하는 예제입니다 :

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) } 
+0

흥미. 그래도 정확히 반복 할 수 있습니까? – Monster

0

또 다른 방법은 당신이 새로운 스키마에 그 네 개의 테이블을 복사 한 다음 일 수 있었다 원래 데이터베이스 스키마를 삭제하십시오.

0

* 괜찬아 한 라이너

for i in `mysql -e "show tables MY_DB" | grep -vE "(table1|table2)"`; do mysql -e"TRUNCATE ${i}" MY_DB; done