티스토리 뷰
STUDY/DB
[mysql] 특정 문자가 있는 table 의 일괄 삭제 쿼리 - How to drop multiple tables such as %temp% or temp% or %temp
하이바네.P 2012. 8. 2. 09:50mysql db 를 다루게 되면 특정 문자열이 있는 table 을 지우게 되는 경우가 있습니다. 물론 tool 을 쓰거나 일일이
mysql>drop table aaa;
mysql>drop table aab;
mysql>drop table aac;
식으로 쓰거나, 아님 쉘로 만들거나, 가장 심플한 방법으론 sequel pro, phpmyadmin 같은 툴들을 이용해 일괄 삭제하는 방법을 권합니다. 그런데 가끔 그런 툴을 사용하지 못하는 경우가 존재하는데, mysql 의 스토어프로시져를 이용한 방법을 소개합니다.
SET @tables = NULL;
SELECT GROUP_CONCAT(table_schema, '.', table_name) INTO @tables FROM information_schema.tables
WHERE table_schema = '[Database]' AND table_name LIKE '[SubTable]%';
SET @tables = CONCAT('DROP TABLE ', @tables);
PREPARE stmt1 FROM @tables;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
우리는 [Database]과 [SubTable] 을 자신의 상황에 맞는 형태로 변경해서 사용하면 되며, 주의하실 것은 Table 끼리의 의존관계, 예를들면 외래키가 존재하는 경우에 한번에 삭제가 되지 않는 경우가 있습니다. 이럴 때는 해당하는 Table 의 수동삭제나, 위 쿼리를 여러번 이용하시면 되겠습니다.
출처: http://stackoverflow.com/questions/4958424/mysql-question-on-dropping-tables/5430104#5430104
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- Apple Store
- it
- linux
- 잡담
- ruby
- server
- 사진
- mysql
- Canon 40D
- MAC
- jQuery
- HTML
- Java
- 한빛비즈
- photo
- html5
- 한빛리더스
- review
- Objective C
- iPhone
- 보안
- windows
- IIS
- 석양
- 하늘
- 1일 1포스팅
- cassandra
- ROR
- 리뷰
- ipod touch
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함