2012-02-11 7 views
29

मैं एक सारणी बनाना चाहता हूं जो दृश्य से परिणामों का कैश है। क्या तालिका को दृश्य की परिभाषा से स्वचालित रूप से परिभाषित करने का कोई आसान तरीका है, या क्या मुझे show create table view से इसे एक साथ जोड़ना होगा?mysql में आसान 'दृश्य से तालिका बनाएं' वाक्यविन्यास?

उत्तर

40

आप इसे बनाने के लिए CREATE TABLE SELECT कर सकते हैं। इसे दृश्य की संरचना को एक नई तालिका के रूप में डुप्लिकेट करना चाहिए जिसमें सभी दृश्य पंक्तियां हों। इस कथन के लिए MySQL syntax reference यहां है।

CREATE TABLE tbl_from_view AS  
    SELECT 
    col1, 
    col2, 
    col3, 
    col4, 
    col5 
    FROM your_view; 

ध्यान दें कि आप अपने कॉलम चयन में बहुत स्पष्ट होना चाहते हैं। स्रोत दृश्य से SELECT * करने की सलाह नहीं दी जाती है। सुनिश्चित करें कि आपके पास COUNT(*), MAX(*), (col1 + col2), आदि जैसे किसी भी गणना या कुल कॉलम के लिए उपनाम हैं

+4

'चयन *' करने की सलाह क्यों नहीं दी जाती है? –

+4

@ मार्टिनबर्च आमतौर पर उत्पादन कोड में 'चयन *' के लिए _never_ सलाह दी जाती है, बजाय कॉलम पुनर्प्राप्त और उनके आदेश के बारे में स्पष्ट होने के बजाय पसंद करते हैं। सीटीएएस के मामले में, आप कॉलम ऑर्डर निर्दिष्ट करना चाहेंगे। यदि आप निश्चित रूप से जानते हैं कि आपको सभी कॉलम की आवश्यकता है और वे पहले से ही पसंदीदा क्रम में हैं, तो 'SELECT *' के साथ आगे बढ़ें, लेकिन स्पष्ट होना बेहतर है और सर्पिल से बचें (जैसे आपके सहयोगियों द्वारा जोड़े गए बड़े बाइनरी ब्लॉब कॉलम, अनजान आप) –

1

मैंने यह भी पाया कि mysqldump आउटपुट में, ऐसे बयान हैं जो दृश्य को परिभाषित करने से ठीक पहले, तालिका के रूप में दृश्य बनाते हैं। मैं उनको पार्स कर सकता हूं और उन्हें प्रश्नों के रूप में चला सकता हूं।

संबंधित मुद्दे