mysql - एक अलग कथन तालिका के बिना एक SELECT कथन में एक अस्थायी तालिका बनाएँ




temp-tables create-table (4)

इंजन चुनने से पहले होना चाहिए:

CREATE TEMPORARY TABLE temp1 ENGINE=MEMORY 
as (select * from table1)

क्या कोई तालिका तालिका कथन का उपयोग किए बिना एक चयन कथन से अस्थायी (सत्र केवल) तालिका बनाना संभव है और प्रत्येक कॉलम प्रकार निर्दिष्ट करना संभव है? मुझे पता है कि व्युत्पन्न टेबल इस में सक्षम हैं, लेकिन वे सुपर-अस्थायी (केवल कथन) हैं और मैं फिर से उपयोग करना चाहता हूं।

यह समय बचाएगा अगर मुझे एक टेबल टेबल कमांड लिखना नहीं था और कॉलम सूची और टाइप सूची टाइप करें।


इस वाक्यविन्यास का प्रयोग करें:

CREATE TEMPORARY TABLE t1 (select * from t2);

Psparrow के उत्तर के अतिरिक्त यदि आपको अपनी अस्थायी तालिका में एक इंडेक्स जोड़ने की आवश्यकता है तो करें:

CREATE TEMPORARY TABLE IF NOT EXISTS 
  temp_table ( INDEX(col_2) ) 
ENGINE=MyISAM 
AS (
  SELECT col_1, coll_2, coll_3
  FROM mytable
)

यह PRIMARY KEY साथ भी काम करता है


CREATE TEMPORARY TABLE IF NOT EXISTS table2 AS (SELECT * FROM table1)

http://dev.mysql.com/doc/refman/5.7/en/create-table.html पर मिले मैन्युअल से

तालिका बनाते समय आप टेम्पलेटरी कीवर्ड का उपयोग कर सकते हैं। एक टेम्पलेटरी तालिका केवल वर्तमान सत्र में दिखाई दे रही है , और सत्र बंद होने पर स्वचालित रूप से गिरा दिया जाता है। इसका मतलब है कि दो अलग-अलग सत्र एक ही अस्थायी तालिका नाम का उपयोग एक-दूसरे के साथ विवाद किए बिना या उसी नाम की मौजूदा गैर-टेम्परी तालिका के साथ कर सकते हैं। (मौजूदा तालिका तब तक छिपी हुई है जब तक अस्थायी तालिका नहीं छोड़ी जाती है।) अस्थायी तालिकाओं को बनाने के लिए, आपके पास CREEM टेम्पलेट टेबल विशेषाधिकार होना चाहिए।





derived-table