从表A中选择某些列并插入表B
问题描述:
尝试从CART表中选择某些数据列并将其添加到ORDER表中。我创建了一个插入顺序方法,它将从CART复制一些列并添加到ORDER表中。但是由于我在ORDER中有一列是“product_stats”,所以引发了一个错误。不是将“product_stats”添加到CART,而是从CART复制某些列时,如何查询ORDER中的product_stats将被忽略? 任何帮助,将不胜感激!从表A中选择某些列并插入表B
PS:我不是很熟悉SQL查询。
ORDER和CART表:
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)");
插入订购方法:
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();
}
错误抛出:
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
答
你可以设置默认值(例如,空)在您的查询product_stats:
database.execSQL("insert into orderT select cart_id, product_name,
product_stall, product_price, '' as product_stats
from cart");
答
你笑uld在您的语句中指定列名称如下:
INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);
通过指定列名可以省略不希望填充的列。
什么快速解决办法!从来没有想过,谢谢! – phosporus