2017-02-25 59 views
-1

嘗試從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 

回答

0

你可以設置默認值(例如,空)在您的查詢product_stats:

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

什麼快速解決辦法!從來沒有想過,謝謝! – phosporus

0

你笑uld在您的語句中指定列名稱如下:

INSERT INTO table_name (column1,column2,column3,...) 
    VALUES (value1,value2,value3,...); 

通過指定列名可以省略不希望填充的列。

相關問題