"T1, B2를 제외한 드롭 테이블"과 같은 것을 구현하는 MySQL 명령이 있습니까?

StackOverflow https://stackoverflow.com/questions/1454328

  •  12-09-2019
  •  | 
  •  

문제

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
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top