mysql

2011-02-07 30 views
69

में एक शॉट में एकाधिक तालिकाओं को छोड़ें एक कमांड पर एक ही डेटाबेस से एकाधिक तालिकाओं को कैसे छोड़ें। कुछ की तरह,mysql

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

जहां ए, बी, सी डेटाबेस परीक्षण से तालिकाओं कर रहे हैं।

+11

आप पहले से ही अपने आप को नीचे दिए गए उत्तर, HeidiSQL में आप उनके नाम (ऊपरी पाठ बॉक्स) द्वारा टेबल फ़िल्टर कर सकते हैं के अनुसार – ajreal

+0

का जवाब, एक प्रश्न में 'ड्रॉप टेबल' लिख सकते हैं और डबल प्रत्येक वांछित तालिका क्लिक के लिए इसका नाम संलग्न करने के लिए क्वेरी (उनके बीच एक अल्पविराम डालें) फिर निष्पादित करने के लिए F9 दबाएं। थोड़ा सा विषय- लेकिन मैं इसके लिए यहां आया था। –

उत्तर

87

उदाहरण:

मान लीजिए कि तालिका एक दो बच्चों बी और सी तो हम सभी तालिकाओं ड्रॉप करने निम्न सिंटैक्स का उपयोग कर सकते हैं करते हैं।

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

आपने मुझे फकी चेक (वाई) के मोड़ से बहुत परेशानी से बचा लिया है। – 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 

 संबंधित मुद्दे