एसक्यूएल - क्लोन टेबल्स

ऐसी स्थिति हो सकती है जब आपको किसी तालिका की सटीक प्रतिलिपि की आवश्यकता होती है और क्रिएट टेबल ... या चयन ... आदेश आपके उद्देश्यों के अनुरूप नहीं होते हैं क्योंकि प्रतिलिपि में समान अनुक्रमित, डिफ़ॉल्ट मान और आगे शामिल होना चाहिए।

यदि आप MySQL RDBMS का उपयोग कर रहे हैं, तो आप नीचे दिए गए चरणों का पालन करके इस स्थिति को संभाल सकते हैं -

  • स्रोत तालिका की संरचना, अनुक्रमित और सभी को निर्दिष्ट करने वाली एक रचनात्मक तालिका विवरण प्राप्त करने के लिए SHOW CREATE TABLE कमांड का उपयोग करें।

  • तालिका नाम को क्लोन तालिका में बदलने के लिए कथन को संशोधित करें और कथन को निष्पादित करें। इस तरह आपके पास एक सटीक क्लोन टेबल होगा।

  • वैकल्पिक रूप से, यदि आपको तालिका की प्रतिलिपि बनाई गई सामग्री की आवश्यकता है, तो INSERT INTO या चयन कथन भी जारी करें।

उदाहरण

के लिए एक क्लोन तालिका बनाने के लिए निम्नलिखित उदाहरण देखें TUTORIALS_TBL जिसकी संरचना इस प्रकार है -

Step 1 - तालिका के बारे में पूरी संरचना प्राप्त करें।

SQL> SHOW CREATE TABLE TUTORIALS_TBL \G; 
*************************** 1. row *************************** 
      Table: TUTORIALS_TBL 
Create Table: CREATE TABLE 'TUTORIALS_TBL' ( 
  'tutorial_id' int(11) NOT NULL auto_increment, 
  'tutorial_title' varchar(100) NOT NULL default '', 
  'tutorial_author' varchar(40) NOT NULL default '', 
  'submission_date' date default NULL, 
  PRIMARY KEY  ('tutorial_id'), 
  UNIQUE KEY 'AUTHOR_INDEX' ('tutorial_author') 
) TYPE = MyISAM 
1 row in set (0.00 sec)

Step 2 - इस तालिका का नाम बदलें और दूसरी तालिका बनाएं।

SQL> CREATE TABLE `CLONE_TBL` ( 
  -> 'tutorial_id' int(11) NOT NULL auto_increment, 
  -> 'tutorial_title' varchar(100) NOT NULL default '', 
  -> 'tutorial_author' varchar(40) NOT NULL default '', 
  -> 'submission_date' date default NULL, 
  -> PRIMARY KEY  (`tutorial_id'), 
  -> UNIQUE KEY 'AUTHOR_INDEX' ('tutorial_author') 
-> ) TYPE = MyISAM; 
Query OK, 0 rows affected (1.80 sec)

Step 3- चरण 2 को निष्पादित करने के बाद, आप अपने डेटाबेस में एक तालिका क्लोन करेंगे। यदि आप किसी पुरानी तालिका से डेटा कॉपी करना चाहते हैं, तो आप इसे INSERT INTO ... SELECT स्टेटमेंट का उपयोग करके कर सकते हैं।

SQL> INSERT INTO CLONE_TBL (tutorial_id, 
   ->                        tutorial_title, 
   ->                        tutorial_author, 
   ->                        submission_date) 
   -> SELECT tutorial_id,tutorial_title, 
   ->        tutorial_author,submission_date, 
   -> FROM TUTORIALS_TBL; 
Query OK, 3 rows affected (0.07 sec) 
Records: 3  Duplicates: 0  Warnings: 0

अंत में, आपके पास एक सटीक क्लोन टेबल होगा जैसा आप चाहते थे।