2013-05-30 4 views
20
से

अपने Android एप्लिकेशन में एक से दूसरे टेबल में डेटा ले जानेतालिका में SQLite डालने का चयन *

मैं निम्नलिखित एसक्यूएल उपयोग करना चाहते हैं की जरूरत है:

insert into MYTABLE2 select id, STATUS risposta, DATETIME('now') data_ins from MYTABLE 2 

दुर्भाग्य से तालिका में MYTABLE2 है एक _आईडी कॉलम ऑटोमेशन। मैं क्या कर सकता था?

धन्यवाद।

संपादित करें: यह मेरा MYTABLE2, टेबल मैं एक तालिका से डेटा के साथ पॉप्युलेट करने के लिए चाहते हैं:

CREATE TABLE "ANSWERS" ("_id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , 
"ID_QUESTION" INTEGER,"DATE_INS" DATETIME DEFAULT 
(CURRENT_DATE) , "ANSWER" INTEGER) 

उत्तर

39

स्पष्ट INSERT खंड में स्तंभ नाम निर्दिष्ट,

INSERT INTO destinationTable (risposta, data_ins) 
SELECT STATUS risposta, DATETIME('now') data_ins 
FROM sourceTable 
+0

#JW 웃 मैं ऐसा करते हैं तो यह कहते हैं: MYTABLE2 एक्स स्तंभ होते हैं लेकिन y मूल्यों आपूर्ति की गई। जहां y = x + 1। ऐसा लगता है कि _id प्राथमिक कुंजी ऑटोइनक्रिकमेंट की आवश्यकता है – Gyonder

+0

यह एक अपवाद उत्पन्न करेगा। मानों की संख्या निर्दिष्ट कॉलम की संख्या के साथ मेल खाना चाहिए। –

+0

क्या आप नमूना तालिका संरचना दे सकते हैं? –

3

आप निर्दिष्ट कर सकते हैं कि आप कौन से कॉलम डाल रहे हैं। यह मानते हुए कि _id स्तंभ autoincrement है और आप अन्य दो कॉलम डालने रहे हैं, आप कुछ इस तरह हो सकता है:

insert into MYTABLE2 (riposta, data_ins) 
select STATUS risposta, DATETIME('now') data_ins from MYTABLE 2 
+0

# एलेक्स जी अगर मैं ऐसा करता हूं तो यह कहता है: MYTABLE2 में एक्स कॉलम हैं लेकिन वाई मानों की आपूर्ति की गई थी। जहां y = x + 1 – Gyonder

+0

@Gyonder क्या आप वाकई चुनिंदा खंड से अपना 'आईडी' कॉलम हटा चुके हैं? –

0

यह मदद कर सकता है, एक से दूसरे टेबल से एक प्रश्न है और यह भी यदि चयनित की जाँच करेगा कॉलम (आईडी) पहले से ही किसी अन्य तालिका में मौजूद है।

SQLite: QUERY

INSERT INTO MYTABLE2(id,data_ins) 
SELECT id, data_ins FROM MYTABLE2 
WHERE id NOT IN (SELECT id FROM MYTABLE1) 

एंड्रॉयड:

String select_insert_query = "INSERT INTO " + TABLE_MYTABLE2 
      + "(" + ID + "," + DATA_INS + ") SELECT " 
      + ID + "," 
      + DATA_INS + " FROM " 
      + TABLE_MYTABLE2 
      + " WHERE " + ID + " NOT IN (SELECT " + ID 
      + " FROM " + TABLE_MYTABLE1 + ")"; 

    SQLiteDatabase db = this.getWritableDatabase(); 

    Cursor cursor = db.rawQuery(select_insert_query, null); 
    cursor.close(); 
संबंधित मुद्दे