Mysql में एक शॉट में कई टेबल ड्रॉप करें


102

एक कमांड पर एक ही डेटाबेस से कई टेबल कैसे ड्रॉप करें। कुछ इस तरह,

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

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


17
आप पहले से ही अपने आप को जवाब देते हैं
ajreal

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

एक ही उपसर्ग के साथ कई तालिकाओं को छोड़ने के इच्छुक लोगों के लिए, क्योंकि DROP TABLE table_prefix_*स्टार चरित्र के साथ काम नहीं करता है: stackoverflow.com/questions/6758652/…
baptx

जवाबों:


135

उदाहरण:

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

DROP TABLE IF EXISTS B,C,A;

यह प्रत्येक तालिका को व्यक्तिगत रूप से छोड़ने के बजाय स्क्रिप्ट की शुरुआत में रखा जा सकता है।


29
शायद यह इंगित करने के लायक है कि तालिकाओं को किसी भी रिश्ते की आवश्यकता नहीं है। वे पूरी तरह से स्वतंत्र हो सकते हैं और यह सिंटैक्स अभी भी काम करेगा।
crmpicco

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

फिर आपको उन्हें सही क्रम में छोड़ने के बारे में चिंता करने की ज़रूरत नहीं है, न ही वे वास्तव में मौजूद हैं।

NB यह केवल MySQL के लिए है (प्रश्न के अनुसार)। अन्य डेटाबेस संभावना है कि यह करने के लिए अलग अलग तरीके हैं।


3
आपने मुझे fkey चेक्स (y) को बदलकर मुझे बहुत परेशानी से बचाया है।
हंग्रीकोडर

0

ऐसा करने का एक आलसी तरीका यदि हटाए जाने वाले तालिकाओं का एक बहुत कुछ है।

  1. नीचे का उपयोग कर तालिका प्राप्त करें

    • Sql सर्वर के लिए - CONCAT (नाम, ',') का चयन करें। SYS.tables से Table_Name;
    • मौखिक के लिए - CONCAT (TABLE_NAME, ',') से SYS.ALL_TABLES का चयन करें;
  2. परिणाम सेट से तालिका के नाम कॉपी और पेस्ट करें और DROP कमांड के बाद पेस्ट करें।


-3
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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.