web-dev-qa-db-fra.com

sqlite insérer dans la table sélectionnez * à partir de

J'ai besoin de déplacer des données d'une table à une autre dans mon Android

Je souhaite utiliser le sql suivant:

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

Malheureusement, dans la table MYTABLE2, il y a une colonne _ID AUTOINCREMENT. "Que pouvais-je faire?"

Merci.

EDIT: c'est mon MYTABLE2 le, le tableau que je voudrais remplir avec les données d'un autre tableau:

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

spécifiez explicitement le nom de la colonne dans la clause INSERT,

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

Vous pouvez spécifier dans quelles colonnes vous insérez. En supposant que le _id la colonne est autoincrement et vous insérez les deux autres colonnes, vous pouvez avoir quelque chose comme ceci:

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

Cela pourrait aider, une requête d'une table à l'autre et il vérifiera également si la colonne (id) sélectionnée existe déjà dans une autre table.

QUESTION SQLite:

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