MySQL में तालिका बनाएं जो किसी अन्य तालिका से मेल खाती है?


84

मैं MySQL का उपयोग कर रहा हूं। मेरे पास ईएमपी नामक एक टेबल है, और अब मुझे एक ही स्कीमा, एक ही कॉलम और एक ही बाधाओं के साथ एक और तालिका (EMP_TWO) बनाने की आवश्यकता है। मैं यह कैसे कर सकता हूँ?


1
क्या आपने phpMyAdmin जैसी संरचना को निर्यात करने की कोशिश की है और फिर बस तालिका का नाम बदल रहा है?
१६:०४

जवाबों:


176

एक अन्य टेबल संरचना / बाधाओं के उपयोग के आधार पर एक नई तालिका बनाने के लिए:

CREATE TABLE new_table LIKE old_table;     

यदि आवश्यक हो, तो डेटा को कॉपी करने के लिए उपयोग करें

INSERT INTO new_table SELECT * FROM old_table;  

तालिका डॉक्स बनाएं

LIKE विकल्प पर नोटों से सावधान रहें:

किसी अन्य स्तंभ की परिभाषा के आधार पर खाली तालिका बनाने के लिए LIKE का उपयोग करें, जिसमें मूल तालिका में परिभाषित कोई भी कॉलम विशेषताएँ और सूचकांक शामिल हैं:

TATE new_table को पसंद करें original_table; मूल तालिका के समान तालिका संग्रहण प्रारूप के उपयोग से प्रतिलिपि बनाई जाती है। मूल तालिका पर चयन विशेषाधिकार की आवश्यकता है।

LIKE केवल बेस टेबल के लिए काम करता है, व्यूज के लिए नहीं।

TATE बनाएँ ... LIKE किसी भी DATA DIRECTORY या INDEX DIRECTORY टेबल विकल्प को संरक्षित नहीं करता है जो कि मूल टेबल, या किसी विदेशी कुंजी परिभाषा के लिए निर्दिष्ट किया गया था।


6
+1 वर्षों से MySQL का उपयोग कर रहे थे और पूरी तरह से अनजान थे कि आप LIKEएक CREATEबयान में उपयोग कर सकते हैं ।
१६:

@ लाभ मुझे केवल इसलिए पता है क्योंकि मैं दूसरे दिन किसी प्रोडक्शन सर्वर (महत्वपूर्ण क्वेरी) पर कुछ परीक्षण करने के लिए ऐसा करना चाहता था -> बहुत उपयोगी!
मानसे

@ मैनसेक क्या होगा अगर मैं एक डेटाबेस से एक तालिका की प्रतिलिपि बनाना चाहता हूं और इसे दूसरे डेटाबेस में बनाना चाहता हूं?
यजी जूल 1'14

यह भी खूब रही! धन्यवाद ... वास्तव में बहुत उपयोगी!
हसंतम

अगर किसी को किसी अन्य डेटाबेस में समान टेबल संरचना की आवश्यकता होती है, तो आपको बस इतना करना होगा CREATE TABLE new_db.new_table LIKE old_db.old_table:)
जिमी एडारो

13

अगर आप केवल स्ट्रक्चर को कॉपी करना चाहते हैं तो उपयोग करें

create table new_tbl like old_tbl;

अगर आप स्ट्रक्चर के साथ-साथ डेटा को भी कॉपी करना चाहते हैं तो उपयोग करें

create table new_tbl select * from old_tbl;

5

MySQL में तालिका बनाएं जो किसी अन्य तालिका से मेल खाती है? उत्तर:

CREATE TABLE new_table AS SELECT * FROM old_table;

4

आप इस तरह क्यों नहीं जाते?

CREATE TABLE new_table LIKE Select * from Old_Table;   

या आप इस तरह से डेटा फ़िल्टर करके जा सकते हैं

CREATE TABLE new_table LIKE Select column1, column2, column3 from Old_Table where column1 = Value1;   

अपनी नई तालिका में एक ही बाधा होने के लिए पहले आपको स्कीमा बनाना होगा फिर आपको स्कीमा निर्माण के लिए डेटा के लिए जाना चाहिए

CREATE TABLE new_table LIKE Some_other_Table;

1
यह दोनों उपयोग करना संभव है likeऔर select *एक बयान में? मुझे त्रुटि हो रही है कृपया इस उत्तर की भी जाँच करें stackoverflow.com/questions/10147565/create-table-like-a1-as-a2
chanchal118

मुझे mysql के लिए यकीन नहीं है
त्रिकालदर्शी

कुछ ऐसा ही स्केलेरसेवर के लिए उपलब्ध है जो कि <OldTableName> से <NewTableName> में * का चयन करता है;
त्रिकालदर्शी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.