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



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

是否可以在插入Finish的值(值将由用户给定(的同时(在同一SQL语句中(将ColorCar表复制到我的Details表中?

我准备的声明是:

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(,用户从我的表单中为finish输入gloss

一旦用户按下submit按钮,最终结果应该是具有值(gloss, red)Detail表,其中gloss来自用户输入,redCar表复制。

您并没有真正告诉我们您的问题是什么。。。

但无论如何,这个:

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

剩下的代码应该不需要更改。

最新更新