2010-09-13 20 views
7

क्या हम सिंटैक्स में डालने के साथ उपनाम का उपयोग कर सकते हैं? निम्नलिखित काम केक्या मैं एक INSERT कथन में उपनाम का उपयोग कर सकता हूं?

कोई नहीं:

INSERT INTO tableblabla AS bla 
INSERT INTO bla tableblabla 
INSERT INTO tableblabla bla 

मैं इस बारे में कोई जानकारी खोजने के लिए प्रतीत नहीं कर सकते हैं; क्या INSERT कथन में उपनाम का उपयोग करने का कोई वैध तरीका है?

संभावित कारणों के बारे में: http://bugs.mysql.com/bug.php?id=3275

+4

आपको इसकी आवश्यकता क्यों है? –

+0

आप किस एसक्यूएल का उपयोग करने की कोशिश कर रहे हैं? –

+0

@ मीकिन - MySQL स्वाद। @pekka: मैंने अपना मूल प्रश्न संपादित किया है। – MEM

उत्तर

5

INSERT syntax अन्य नामों के लिए अनुमति नहीं है। किसी भी तरह से आपको INSERT कथन में एक की आवश्यकता क्यों होगी? आप एक समय में केवल एक ही टेबल में INSERT कर सकते हैं।

+9

+1: केवल एक कारण है कि मैं एक उपनाम की आवश्यकता को देख सकता हूं यदि एक सहसंबंधित सबक्वायरी में है ... –

+0

मैं पूछ रहा था कि क्या यह समझ में आता है क्योंकि, मुझे समझ में आता है कि मुझे प्रश्नों पर सभी mysql संभावनाएं नहीं हैं, इसलिए, और जब से मैंने सीखा कि यह समझने के लिए कि हम क्या उपयोग कर रहे हैं, बेहतर ढंग से समझने के लिए उपनाम का उपयोग करना एक अच्छा प्रैटिस है ... मैंने सोचा कि यह उचित होगा। फिर भी, उत्तर भाग: "सम्मिलित वाक्यविन्यास उपनामों की अनुमति नहीं देता है" जो मुझे अभी जानने की आवश्यकता थी। ;) कारणों से, या शायद कारणों से, आज मेरे प्रश्न संस्करण देखें। बहुत बहुत धन्यवाद। :) – MEM

+2

वाक्यविन्यास में सुविधा, लचीलापन और स्थिरता। – Preston

12

आईएनएसईआरटी पर टेबल उपनामों का उपयोग करने की क्षमता होने पर, विशेष रूप से कॉलम पर चेक करने पर, विशेष रूप से कुंजी विवरणों के लिए बहुत उपयोगी होगा। यहाँ एक उदाहरण है:

insert into very_long_table_name_that_can_be_modified_one_day_or_during_testing (
    mykey, 
    column1, 
    column2, 
    column3, 
    <column99> 
) 
select 
    mykey, 
    column1, 
    column2, 
    column3, 
    <column99> 
from subquery 
on duplicate key update 
    column1 = ifnull(values(column1), very_long_table_name_that_can_be_modified_one_day_or_during_testing.column1), 
    column2 = ifnull(values(column2), very_long_table_name_that_can_be_modified_one_day_or_during_testing.column2), 
    column3 = ifnull(values(column3), very_long_table_name_that_can_be_modified_one_day_or_during_testing.column3), 
    <column99>; 

तालिका नाम परिवर्तन आप तो बस शुरुआत है जो क्वेरी में प्रयोग किया जाता है पर एक उपनाम होने की तुलना में कोड की लाइन का एक बहुत संशोधित करने के लिए होगा।

+2

यह एक टिप्पणी होना चाहिए। लेकिन वैसे भी ऊपर उठाया, क्योंकि यह बहुत महत्वपूर्ण है – th3an0maly

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