2013-05-30 14 views
20

muszę przenieść dane z jednej tabeli do drugiej w moim Android appsqlite insert do tabeli select * from

Chciałbym użyć następującego sql:

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

Niestety w tabeli MYTABLE2 istnieje kolumna _ID AUTOINCREMENT. Co mogę zrobić?

Dzięki.

EDIT: to moja MYTABLE2 the, stół Chciałbym wypełnić danymi z innej tabeli:

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

Odpowiedz

39

wyraźnie określa nazwę kolumny w klauzuli INSERT,

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

#JW 웃 Jeśli mogę to zrobić jest napisane: MYTABLE2 ma x kolumny ale wartości y zostały dostarczone. Gdzie y = x + 1. Wygląda na to, że wymagany jest również _id główny klucz autoinkrementacji – Gyonder

+0

, który wygeneruje wyjątek. liczba wartości musi być zgodna z określoną liczbą kolumn. –

+0

Czy możesz podać przykładową strukturę tabeli? –

3

Możesz określić kolumny, które wstawiasz. Zakładając, że kolumna _id jest autoincrement a ty wkładając dwa inne kolumny, można mieć coś takiego:

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

#Aleks G Jeśli to zrobię, to mówi: MYTABLE2 ma x kolumn ale wartości zostały dostarczone. Gdzie y = x + 1 – Gyonder

+0

@Gyonder Czy jesteś pewien, że usunąłeś kolumnę 'id' z klauzuli select? –

0

To może pomóc, zapytanie z jednej tabeli do drugiej, a także sprawdzić, czy wybrany kolumna (id) już istnieje w innej tabeli.

SQLite zapytanie:

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

Android:

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(); 
Powiązane problemy