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

eit6fx6z  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(226)

我有一个 Car 带列的表 carID, brand, color, price . 我只想抄 color 去另一张table Detail 有列的 finish, color . 以及 Finish 列不可用 NULL .
可以复印吗 ColorCar 我的table Details 同时(在同一sql语句中)插入 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 表中有值( 001 , Nissan , red , 14500 )以及用户输入 gloss 为了 finish 从我的表格。
一旦用户按下 submit 按钮,最终结果应该是 Detail 具有值的表 (gloss, red)gloss 来自用户输入和 red 被复制自 Car table。

l0oc07j2

l0oc07j21#

你没有告诉我们你的问题是什么。。。
但不管怎样,这个:

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 = ?;";

剩下的代码不需要更改。

相关问题