2011-02-07 5 views
69

한 명령에서 하나의 단일 데이터베이스에서 여러 테이블을 삭제하는 방법. 뭔가처럼, A, B, C 데이터베이스 테스트에서 테이블입니다mysql에서 한 번에 여러 테이블 끌어 놓기

> use test; 
> drop table a,b,c; 

.

+11

당신은 이미 당신이 그들의 이름 (위 텍스트 상자)로 테이블을 필터링 할 수 있습니다 HeidiSQL에 아래의 답변에 따라 자신을 – ajreal

+0

대답 질의에'DROP 표를'작성하고 두 번에 이름을 추가 할 원하는 각 테이블을 클릭 쿼리 (그들 사이에 쉼표를 넣는다)를 실행 한 다음 F9 키를 눌러 실행합니다. 주제 조금 벗어나지 만 여기에 왔습니다. –

답변

87

예 :

는의 테이블 A는 두 아이의 B와 C는 그 다음 우리는 모든 테이블을 삭제하려면 다음 구문을 사용할 수있다 가정 해 봅시다.

DROP TABLE IF EXISTS B,C,A; 

개별적으로 각 테이블을 삭제하는 대신 스크립트의 시작 부분에 배치 할 수 있습니다.

+20

어쩌면 테이블이 전혀 관계가있을 필요가 없다는 것을 지적 할 가치가 있습니다. 이들은 완전히 독립적 일 수 있으며이 구문은 계속 작동합니다. – crmpicco

56
SET foreign_key_checks = 0; 
DROP TABLE IF EXISTS a,b,c; 
SET foreign_key_checks = 1; 

그런 다음 올바른 순서대로 삭제할 것인지 또는 실제로 존재하는지 여부는 걱정할 필요가 없습니다.

+2

당신은 fkey 수표 (y)를 돌려 많은 번거 로움에서 나를 구했습니다. – HungryCoder

+0

남자, 그 일에 감사드립니다. – sradha

-2
declare @sql1 nvarchar(max) 
SELECT @sql1 = 
    STUFF(
     (
      select ' drop table dbo.[' + name + ']' 

      FROM sys.sysobjects AS sobjects 
      WHERE (xtype = 'U') AND (name LIKE 'GROUP_BASE_NEW_WORK_%') 
      for xml path('') 
     ), 
    1, 1, '') 

    execute sp_executesql @sql1