मैंने अस्थायी तालिका चयन बनाने के लिए उचित सिंटैक्स के साथ काफी समय तक कुश्ती की। कुछ बातों का पता लगाने के बाद, मैं बाकी समुदाय के साथ उत्तर साझा करना चाहता था।
कथन के बारे में मूलभूत जानकारी निम्नलिखित MySQL लिंक्स पर उपलब्ध है:
टेबल चयन बनाएं और टेबल बनाएं ।
कभी-कभी कल्पना की व्याख्या करना कठिन हो सकता है। चूंकि अधिकांश लोग उदाहरणों से सबसे अच्छा सीखते हैं, इसलिए मैं साझा करूंगा कि मैंने एक कार्यशील विवरण कैसे बनाया है, और आप इसे अपने लिए काम करने के लिए कैसे संशोधित कर सकते हैं।
-
एकाधिक अनुक्रमणिका जोड़ें
यह कथन दिखाता है कि एकाधिक अनुक्रमणिका कैसे जोड़ें (ध्यान दें कि अनुक्रमणिका नाम - निचले मामले में - वैकल्पिक हैं):
CREATE TEMPORARY TABLE core.my_tmp_table (INDEX my_index_name (tag, time), UNIQUE my_unique_index_name (order_number)) SELECT * FROM core.my_big_table WHERE my_val = 1
-
नई प्राथमिक कुंजी जोड़ें :
CREATE TEMPORARY TABLE core.my_tmp_table (PRIMARY KEY my_pkey (order_number), INDEX cmpd_key (user_id, time)) SELECT * FROM core.my_big_table
-
अतिरिक्त कॉलम बनाएं
आप SELECT कथन में निर्दिष्ट से अधिक स्तंभों के साथ एक नई तालिका बना सकते हैं। तालिका परिभाषा में अतिरिक्त कॉलम निर्दिष्ट करें। तालिका परिभाषा में निर्दिष्ट और चयन में नहीं पाए जाने वाले कॉलम नई तालिका में पहले कॉलम होंगे, इसके बाद सेलेक्ट स्टेटमेंट द्वारा डाले गए कॉलम होंगे।
CREATE TEMPORARY TABLE core.my_tmp_table (my_new_id BIGINT NOT NULL AUTO_INCREMENT, PRIMARY KEY my_pkey (my_new_id), INDEX my_unique_index_name (invoice_number)) SELECT * FROM core.my_big_table
-
चयन से कॉलम के लिए डेटा प्रकारों को फिर से परिभाषित करना
आप चयनित होने वाले कॉलम के डेटा प्रकार को फिर से परिभाषित कर सकते हैं। नीचे दिए गए उदाहरण में, कॉलम टैग core.my_big_table में एक MEDIUMINT है और मैं इसे core.my_tmp_table में एक BIGINT में पुनर्परिभाषित कर रहा हूं।
CREATE TEMPORARY TABLE core.my_tmp_table (tag BIGINT, my_time DATETIME, INDEX my_unique_index_name (tag) ) SELECT * FROM core.my_big_table
-
बनाने के दौरान उन्नत फ़ील्ड परिभाषाएं
जब आप एक सामान्य तालिका बनाते हैं तो सभी सामान्य कॉलम परिभाषाएँ उपलब्ध होती हैं। उदाहरण:
CREATE TEMPORARY TABLE core.my_tmp_table (id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, value BIGINT UNSIGNED NOT NULL DEFAULT 0 UNIQUE, location VARCHAR(20) DEFAULT "NEEDS TO BE SET", country CHAR(2) DEFAULT "XX" COMMENT "Two-letter country code", INDEX my_index_name (location)) ENGINE=MyISAM SELECT * FROM core.my_big_table