2010-06-01 12 views
33

जब मैं क्वेरी निम्नलिखित को निष्पादित करने का प्रयास करें:चयन में और "अघोषित चर" त्रुटि

#1327 - Undeclared variable: newsletter_to_send

क्या कि क्वेरी के साथ गलत है:

SELECT id_subscriber 
    INTO newsletter_to_send 
    FROM subscribers 

मैं कोई त्रुटि मिलती है?

उत्तर

39
INSERT ... SELECT 

http://dev.mysql.com/doc/refman/5.1/en/insert-select.html

INSERT INTO newsletter_to_send 
SELECT id_subscriber FROM subscribers 

पुनश्च: क्या आप वाकई WHERE खंड में की जरूरत नहीं है कर रहे हैं?

+0

पढ़ ठीक काम करता है, धन्यवाद! – hsz

+2

डालने का उपयोग करने के लिए हमें पहले टेबल बनाने की आवश्यकता है, इस मामले में यदि तालिका newsletter_to_send मौजूद नहीं है, तो त्रुटि होगी! –

+0

@ प्रवीण कुमार: यह स्पष्ट है कि आपको एक सर्वर होना चाहिए, mysql स्थापित और तालिका के साथ, है ना? – zerkms

18

MySQL SELECT ... INTO ... वाक्यविन्यास का समर्थन नहीं करता है।

आपको वहां पूरा करने के लिए INSERT INTO ... SELECT .. वाक्यविन्यास का उपयोग करना होगा।

यहां अधिक पढ़ें .. http://dev.mysql.com/doc/refman/5.0/en/insert-select.html

+0

क्या आप यहां समस्या के साथ मेरी सहायता करने के लिए दिमाग करेंगे कृपया http: // stackoverflow .com/प्रश्न/43987326/कनवर्टिंग-ऑरैक-ट्रिगर-टू-माइस्क्ल-ट्रिगर – sam

3

MySQL सर्वर का चयन करें समर्थन नहीं करता है ... जांच टेबल Sybase एसक्यूएल विस्तार। इसके बजाय, MySQL सर्वर INSERT का समर्थन करता है ... मानक SQL सिंटैक्स चुनें, जो मूल रूप से वही बात है। खंड 12.2.5.1, "सम्मिलित करें ... सिंटैक्स चुनें" देखें।

रेफरी: - this

8

MySQL SELECT INTO [table] समर्थन नहीं करता। यह केवल SELECT INTO [variable] का समर्थन करता है और केवल एक ही चर को एक समय में कर सकता है।

क्या आप कर सकते हैं करते हैं, लेकिन साथ एक SELECT तो जैसे CREATE TABLE सिंटैक्स का उपयोग है:

CREATE TABLE bar ([column list]) SELECT * FROM foo; 
+0

यह उदाहरण अच्छा है और mysql को चयन के समतुल्य करने की अनुमति देता है ... INTO ... एक तालिका बनाकर ऑटो – ejectamenta

+0

कम से कम नवीनतम के लिए MySQL का संस्करण आप एक 'चयन [मूल्य] INTO [चर]] कथन में एकाधिक चरों को एकाधिक मान असाइन कर सकते हैं। Https://dev.mysql.com/doc/refman/5.7/en/select-into.html –

-3

MySQL SELECT INTO [table] समर्थन नहीं करता। यह केवल SELECT INTO [variable] का समर्थन करता है और केवल एक ही चर को एक समय में कर सकता है।

11

मुझे लगता है कि तुम मेरी दी रास्ता पालन कर सकते हैं और उम्मीद है कि आप अपनी समस्या को ठीक करने में सक्षम हो जाएगा:

आप क्या कर सकते हैं, तथापि के साथ एक SELECT तो जैसे CREATE TABLE सिंटैक्स का उपयोग है।

पहला प्रयोग पर इस एसक्यूएल आदेश एक नया टेबल जहां बैकअप

CREATE TABLE destination_table_name LIKE source_table_name; 

लेने के लिए तो आप उन डेटा

INSERT INTO destination_table_name 
SELECT * FROM source_table_name; 

यदि आपके पास पहले कॉपी करने के लिए इस आदेश का उपयोग कर सकते हैं के बाद चाहते हैं बनाने के लिए आपके गंतव्य तालिका में पिछले डेटा, सबसे पहले आप इस कमांड का उपयोग कर सकते हैं

TRUNCATE TABLE destination_table_name; 

एमडी द्वारा धन्यवाद।Maruf हुसैन

+0

धन्यवाद यह मदद करता है ... –

8
CREATE TABLE table_name 
AS 
SELECT ...(your select)
3

मैं इस पर अभी काम कर रहा करने की कोशिश की और यह मेरे लिए काम करता है:

CREATE TABLE New_Table_name 
SELECT * FROM Original_Table_name; 
+1

"नया ~ थोड़ा भ्रामक है और इसे छोड़ा जाना चाहिए –

0

mysql का समर्थन नहीं करते चयन करें ... जांच ... वाक्य रचना,

अगर यह एक नई टेबल, टेबल बनाएं ... चयन करें ... वाक्यविन्यास।

उदाहरण:

CREATE TABLE artists_and_works 
    SELECT artist.name, COUNT(work.artist_id) AS number_of_works 
    FROM artist LEFT JOIN work ON artist.id = work.artist_id 
    GROUP BY artist.id; 

यहाँ और अधिक create-table-select

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