"T1, B2를 제외한 드롭 테이블"과 같은 것을 구현하는 MySQL 명령이 있습니까?
문제
T1, T2를 유지하고 다른 모든 테이블을 떨어 뜨리고 싶습니다.
해결책
당신이 사용할 수있는 information_schema
테이블 이름을 찾아서 결과를 다음과 같은 형식으로 형식화하려면 DROP
진술.
SELECT CONCAT('DROP TABLE ', TABLE_NAME, '; ')
FROM information_schema.tables
WHERE table_schema = DATABASE() AND table_name NOT IN ('foo', 'bar', 'baz');
(그만큼 DATABASE()
함수는 현재를 반환합니다 use
'D 데이터베이스.)
사용 PREPARE
그리고 EXECUTE
, 당신은 복사 및 붙여 넣기를 피할 수도 있고 (MySQL 5.0.13 이상) 저장 절차를 작성하여이를 수행하십시오.
다른 팁
mysqldump를 사용하여 드롭 테이블 문의 목록을 생성하고 원하지 않는 내용을 필터링 한 다음 MySQL 클라이언트로 다시 파이프 할 수 있습니다. 우리가 그것을 구축하는 방법은 다음과 같습니다
먼저 다음은 데이터베이스에 대한 드롭 테이블 테이블 문의 목록입니다.
mysqldump -uUSERNAME -pPASSWORD--add-drop-table --no-data DATABASE| \
grep ^DROP
이제 우리는 -V를 통해 GREP를 통해 파이프를 파이프하여 경기를 뒤집습니다.
mysqldump -uUSERNAME -pPASSWORD--add-drop-table --no-data DATABASE| \
grep ^DROP |
grep -v 'foo\|bar'
마지막으로, 자신이 확신하면 MySQL로 다시 파이프 할 수 있습니다.
mysqldump -uUSERNAME -pPASSWORD--add-drop-table --no-data DATABASE| \
grep ^DROP | \
grep -v 'foo\|bar' | \
mysql -uUSERNAME -pPASSWORD DATABASE
제휴하지 않습니다 StackOverflow