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