我有一个Car
表,其中有carID, brand, color, price
列。我只想将color
复制到另一个具有列Detail
的表finish, color
中。并且Finish
列不是NULL
。
是否可以同时(在同一SQL语句中)将Color
表中的Car
从Details
表复制到我的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
),并且用户为{{ 1}}。
一旦用户按下gloss
按钮,最终结果应该是finish
表,其值submit
,其中Detail
来自用户输入,{{1} }正在从(gloss, red)
表中复制。
答案 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 = ?;";
您的其余代码无需更改。