it-swarm.com.de

sqlite einfügen in tabelle auswählen * aus

Ich muss Daten in meiner Android App von einer Tabelle in eine andere verschieben

Ich möchte den folgenden SQL verwenden:

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

Leider gibt es in der Tabelle MYTABLE2 eine _ID-Spalte AUTOINCREMENT. Was könnte ich tuen?

Vielen Dank.

EDIT: das ist meine MYTABLE2 die Tabelle, die ich mit Daten aus einer anderen Tabelle füllen möchte:

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

geben Sie den Spaltennamen explizit in der INSERT -Klausel an.

INSERT INTO destinationTable (risposta, data_ins)
SELECT STATUS risposta, DATETIME('now') data_ins 
FROM   sourceTable
55
John Woo

Sie können angeben, in welche Spalten Sie einfügen. Angenommen, die _id Spalte ist autoincrement und wenn Sie die anderen beiden Spalten einfügen, können Sie so etwas haben:

insert into MYTABLE2 (riposta, data_ins)
select STATUS risposta, DATETIME('now') data_ins from  MYTABLE 2
3
Aleks G

Dies kann hilfreich sein, wenn Sie eine Abfrage von einer Tabelle in eine andere durchführen. Außerdem wird überprüft, ob die ausgewählte Spalte (ID) bereits in einer anderen Tabelle vorhanden ist.

SQLite QUERY:

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();