我有一个 Car
表,其中包含列 carID, brand, color, price
。我只想将 color
复制到另一个表 Detail
,其中包含 finish, color
列。并且 Finish
列不是 NULL
。
是否可以在插入时同时(在同一 SQL 语句中)将 Car
表中的 Color
复制到我的 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
) 并且用户从我的表单中输入 gloss
for finish
。
一旦用户按下提交
按钮,最终结果应该是Detail
表,其值(gloss, red)
和gloss
来自用户输入,red
从 Car
表中复制。
最佳答案
您并没有真正告诉我们您遇到的问题是什么...
但无论如何,这:
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 = ?;";
您的代码的其余部分不需要更改。
关于java - 将某些列复制到另一个表中并在同一 SQL 语句中插入新值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53549931/