कॉपी कॉपी डाटा के बिना


153
CREATE TABLE foo SELECT * FROM bar

तालिका को कॉपी करता है fooऔर इसे एक नई तालिका के रूप में डुप्लिकेट करता है bar

मैं fooएक नई तालिका के स्कीमा की प्रतिलिपि कैसे बना सकता हूं, जो डेटा पर भी कॉपी bar किए बिना कहा जाता है ?


1
2005 में स्केलेस्वर में समान कैसे करें?
थंडर

बार से क्या मतलब है?
स्मित सरैया


@ थंडर ऐसा लगता है कि आप MS SQL में "Colums only" कॉपी कर सकते हैं। संदर्भ के लिए इसे देखें: stackoverflow.com/questions/2505728/…
केविन वर्थिंगटन

जवाबों:


140

प्रयत्न:

CREATE TABLE foo SELECT * FROM bar LIMIT 0

या:

CREATE TABLE foo SELECT * FROM bar WHERE 1=0

4
select * into foo from bar where 1=0
थंडर

29
यह बाधाओं या कुंजियों की नकल करने के लिए प्रतीत नहीं होता है
टिमो हुओवेनन

15
@TimoHuovinen: शायद आपके create table NewTable like OldTableलिए एक विकल्प है। लिंक हटाए गए उत्तर से कॉपी किया गया।
एंडोमर

1
बनें वास्तव में लोड के अंतर्गत और उच्च संगामिति पर इस का उपयोग कर के बारे में सावधान। मैं सिर्फ इस पैमाने का उपयोग करके जलाया गया हूं, जहां हमने लगभग 50 अलग-अलग तालिकाओं को एक ही स्रोत तालिका के आधार पर बनाया, उसी समय अन्य प्रक्रियाओं से स्रोत तालिका में डालने के रूप में। मूल रूप से एक बड़े पैमाने पर ताला मंदी का कारण बना और MySQL को पुनरारंभ करना पड़ा।
मार्क बी

6
उम्म, ओपी उलझन में है? यह सवाल का गलत जवाब है, अगर हम शीर्षक और प्रश्न पर जोर देते हैं तो "... डेटा पर कॉपी किए बिना ..." RCNell का जवाब सही मायने में सबसे अधिक मतदान है। यकीन नहीं होता कि यह क्यों स्वीकार हो गया। मैं तो बस कह रहा हूं'।
xyphenor

421

प्रयत्न

CREATE TABLE foo LIKE bar;

इसलिए चाबी और इंडेक्स को कॉपी किया जाता है।

प्रलेखन


40
यह एक बेहतर उत्तर है क्योंकि यह प्रतियां अनुक्रमणिका भी है!
19

2
यह बहुत बेहतर है, लेकिन फिर भी विदेशी कुंजियों की नकल नहीं करता है।
जोसेफ साबल

@ RCNeil, क्या CREATE TABLE new_tbl LIKE orig_tbl;विशेषाधिकारों की भी प्रतिलिपि बनाता है? या उन लोगों को मैन्युअल रूप से कॉपी किया जाना चाहिए?
पचेरियर

2
शायद इसलिए क्योंकि यह जवाब 4 साल बाद आया था, जैसा कि सही
बताया

1
@ पियरे-ओलिवियरवेयर प्रलेखन पाठ वास्तविक उत्तर के लिए सीधे प्रासंगिक नहीं है। उत्तर पाठ यह दिखाने में संक्षिप्त है कि प्रश्न क्या पूछा गया है, जबकि प्रलेखन लिंक केवल अतिरिक्त संदर्भ प्रदान करता है। जैसे, प्रलेखन से पाठ के साथ उत्तर को फूला देना मददगार नहीं है।
Abion47

27
SHOW CREATE TABLE bar;

आपको उस तालिका के लिए एक वक्तव्य बनाना होगा, तालिका का नाम, या जो कुछ भी आप पसंद करते हैं उसे संपादित करें, और फिर इसे निष्पादित करें।

यह आपको अनुक्रमणिका की प्रतिलिपि बनाने की अनुमति देगा और तालिका निर्माण को मैन्युअल रूप से ट्विक भी करेगा।

आप किसी प्रोग्राम के भीतर क्वेरी भी चला सकते हैं।


आप show create table barएक गतिशील रूप से निष्पादन योग्य बयान में कैसे बदल सकते हैं ?
पचेरियर

द्वारा दिया गया परिणाम show create table barपहले से ही निष्पादन योग्य है, यदि स्क्रिप्ट में तालिकाओं को बनाने की अनुमति है, तो आप इसे पार्स कर सकते हैं और फिर तालिका विवरणों को भी बदल सकते हैं।
तैमू हुओवेनन

create table...इंडेक्स की कॉपी नहीं करेंगे। यह उत्तर बेहतर विकल्प है
ब्लूपिंटो सेप

2

केवल तालिका की संरचना का क्लोन बनाना चाहते हैं:

CREATE TABLE foo SELECT * FROM bar WHERE 1 = 2;

इसके अलावा डेटा को कॉपी करना चाहता है:

CREATE TABLE foo as SELECT * FROM bar;
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.