【问题标题】:sqlite insert into table select * fromsqlite 插入表中选择 * 从
【发布时间】:2013-05-26 04:32:57
【问题描述】:

我需要在我的 Android 应用中将数据从一个表移动到另一个表

我想使用下面的sql:

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

不幸的是,在表 MYTABLE2 中有一个 _ID 列 AUTOINCREMENT。 我能做什么?

谢谢。

编辑: 这是我的 MYTABLE2,我想用另一个表中的数据填充该表:

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

【问题讨论】:

    标签: android sql sqlite


    【解决方案1】:

    这可能会有所帮助,从一个表到另一个表的查询,它还将检查所选列 (id) 是否已存在于另一个表中。

    SQLite 查询:

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

    【讨论】:

      【解决方案2】:

      您可以指定要插入的列。假设 _id 列是 autoincrement 并且您正在插入另外两列,您可以有这样的内容:

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

      【讨论】:

      • #Aleks G 如果我这样做,它会说:MYTABLE2 有 x 列,但提供了 y 值。其中 y =x+1
      • @Gyonder 你确定你从 select 子句中删除了你的 id 列吗?
      【解决方案3】:

      INSERT 子句中明确指定列名,

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

      【讨论】:

      • #JW 웃 如果我这样做,它会说:MYTABLE2 有 x 列,但提供了 y 值。其中 y =x+1。似乎也需要 _id 主键自增
      • 会产生异常。值的数量必须与指定的列数匹配。
      • 你可以通过NULL,这是一个简化的例子,INSERT INTO destTable(DestinationID, OtherID, ColA) SELECT NULL, OtherID, COlA, FROM SourceTable
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-29
      • 2014-12-21
      • 1970-01-01
      相关资源
      最近更新 更多