Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从表A中选择某些列并插入表B_Android_Sql_Sqlite - Fatal编程技术网

Android 从表A中选择某些列并插入表B

Android 从表A中选择某些列并插入表B,android,sql,sqlite,Android,Sql,Sqlite,正在尝试从购物车表中选择某些数据列并将其添加到订单表中。我创建了一个insert order方法,它将从购物车复制一些列并添加到order表中。但抛出了一个错误,因为我有一列按顺序排列,即“product_stats”。在从购物车复制某些列时,如何以这样一种方式进行查询,而不是将“product_stats”添加到购物车中,从而忽略按顺序排列的product_stats? 任何帮助都将不胜感激 PS:我不太熟悉SQL查询 订单和购物车表: sqLiteHelper.queryData("CRE

正在尝试从购物车表中选择某些数据列并将其添加到订单表中。我创建了一个insert order方法,它将从购物车复制一些列并添加到order表中。但抛出了一个错误,因为我有一列按顺序排列,即“product_stats”。在从购物车复制某些列时,如何以这样一种方式进行查询,而不是将“product_stats”添加到购物车中,从而忽略按顺序排列的product_stats? 任何帮助都将不胜感激

PS:我不太熟悉SQL查询

订单和购物车表:

 sqLiteHelper.queryData("CREATE TABLE IF NOT EXISTS cart (cart_id INTEGER PRIMARY KEY AUTOINCREMENT, product_image BLOG, product_name TEXT, product_stall TEXT, product_price TEXT)");

 sqLiteHelper.queryData("CREATE TABLE IF NOT EXISTS orderT (order_id INTEGER PRIMARY KEY AUTOINCREMENT, product_name TEXT, product_stall TEXT, product_price TEXT, product_stats TEXT)");
Caused by: android.database.sqlite.SQLiteException: 4 values for 5 columns (code 1): , while compiling: insert into orderT (order_id, product_name, product_stall, product_price, product_stats) select cart_id, product_name, product_stall, product_price from cart
插入订单方式:

 public void insertOrder(){
    SQLiteDatabase database = this.getWritableDatabase();
    database.execSQL("insert into orderT select cart_id, product_name, product_stall, product_price from cart");
    database.close();
}
引发错误:

 sqLiteHelper.queryData("CREATE TABLE IF NOT EXISTS cart (cart_id INTEGER PRIMARY KEY AUTOINCREMENT, product_image BLOG, product_name TEXT, product_stall TEXT, product_price TEXT)");

 sqLiteHelper.queryData("CREATE TABLE IF NOT EXISTS orderT (order_id INTEGER PRIMARY KEY AUTOINCREMENT, product_name TEXT, product_stall TEXT, product_price TEXT, product_stats TEXT)");
Caused by: android.database.sqlite.SQLiteException: 4 values for 5 columns (code 1): , while compiling: insert into orderT (order_id, product_name, product_stall, product_price, product_stats) select cart_id, product_name, product_stall, product_price from cart

您应该在语句中指定列名,如下所示:

INSERT INTO table_name (column1,column2,column3,...)
    VALUES (value1,value2,value3,...);
通过指定列名,可以省略不希望填充的列

您可以在查询中为product_stats设置默认值(例如,空):

database.execSQL("insert into orderT select cart_id, product_name, 
                  product_stall, product_price, '' as product_stats  
                  from cart");

多快的解决方法啊!从没想过,谢谢!