테스트 사이트 - 개발 중인 베타 버전입니다

Mysql Table 일괄 삭제 방법.

· 10년 전 · 473

작업을 하다보면 테이블 전체를 일괄로 삭제해야할때가 있는데요.

 

물론 테이블이 많지 않으면 하나하나 Drop 을 해주면 되지만 그렇지 않은경우가 종종있습니다.

 

 

 

이럴때 사용하면 좋은 팁입니다.

 

 

 


 

 

SET @tables = NULL;
 SELECT GROUP_CONCAT(table_schema, '.', table_name) INTO @tables
   FROM information_schema.tables 
   WHERE table_schema = 'DB명'; -- specify DB name here.

 SET @tables = CONCAT('DROP TABLE ', @tables);
 PREPARE stmt FROM @tables;
 EXECUTE stmt;
 DEALLOCATE PREPARE stmt;

 

 


 

 

위에 DB명이라는 부분에 삭제할 데이터베이스이름을 넣고 쿼리를 실행하면됩니다.

 

 

그대로 복사해서 실행하면 아래처럼 실행되니 부분부분 궁금하신분은 참고하세요.

 

 

 


 

 

 

mysql> SET @tables = NULL;
Query OK, 0 rows affected (0.00 sec)

 

mysql>  SELECT GROUP_CONCAT(table_schema, '.', table_name) INTO @tables
    ->    FROM information_schema.tables 
    ->    WHERE table_schema = 'DB명'; -- specify DB name here.
Query OK, 1 row affected (0.01 sec)

 

mysql> 
mysql>  SET @tables = CONCAT('DROP TABLE ', @tables);
Query OK, 0 rows affected (0.00 sec)

 

mysql>  PREPARE stmt FROM @tables;
Query OK, 0 rows affected (0.00 sec)


Statement prepared

mysql>  EXECUTE stmt;
Query OK, 0 rows affected (0.01 sec)

 

mysql>  DEALLOCATE PREPARE stmt; 
Query OK, 0 rows affected (0.00 sec)

 

mysql> show tables;
Empty set (0.00 sec)


댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

게시글 목록

번호 제목
28080
7612
7598
7595
19842
28079
19840
7593
28076
7590
28072
28065
19836
7586
28058
7573
31754
7552
28057
30993
28052
7546
7544
7538
7519
30992
19834
7517
7512
7511
19832
19820
7509
24658
7508
7507
19818
30990
7506
7505
7498
7492
28051
7481
30988
19813
19812
7477
7476
7471
7467
19810
7464
19809
7463
7457
30980
7450
28043
7447
7440
28040
7438
7430
7427
7423
7414
7408
7405
7401
7400
19808
7398
7393
7389
19805
7382
7379
7378
7363
7361
7356
19804
7355
7352
19786
7342
7336
7332
19783
7328
7325
7324
28036
19782
7321
26574
7314
7312
19781