将某些列复制到另一个表中,并在同一SQL语句中插入新值?

时间:2018-11-30 01:25:02

标签: java mysql sql jsp insert

我有一个Car表,其中有carID, brand, color, price列。我只想将color复制到另一个具有列Detail的表finish, color中。并且Finish列不是NULL

是否可以同时(在同一SQL语句中)将Color表中的CarDetails表复制到我的Finish表中(值将由用户提供)?

我的准备好的声明是:

String finish = request.getParameter("finish") //get user input from form
int carID = ... //retrieved from another SQL statement

public void insertToDetail(int carID, String finish){

     String sql = "INSERT INTO detail (finish, color) VALUES ?, "
      + "SELECT color FROM car WHERE carID = ? ;";

     PreparedStatement psmt = connect.prepareStatement(sql);

     psmt.setString(1, finish);
     psmt.setInt(2, carID);
     psmt.executeUpdate();  
     psmt.close();

}

一个案例场景例如:

我的Car表具有值(001Nissanred14500),并且用户为{{ 1}}。

一旦用户按下gloss按钮,最终结果应该是finish表,其值submit,其中Detail来自用户输入,{{1} }正在从(gloss, red)表中复制。

1 个答案:

答案 0 :(得分:1)

您没有真正告诉我们您遇到的问题是什么...

但是无论如何,这是

String sql = "INSERT INTO detail (color, finish) VALUES ?, "
  + "SELECT FROM car (color) WHERE carID = ? ;";

应该是:

String sql = "INSERT INTO detail SELECT ?, color FROM car WHERE carID = ?;";

您的其余代码无需更改。