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

标签 java mysql sql jsp insert

我有一个 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 来自用户输入,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 = ?;";

您的代码的其余部分不需要更改。

关于java - 将某些列复制到另一个表中并在同一 SQL 语句中插入新值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53549931/

相关文章:

mysql2.so : libmysqlclient_r. so.15:无法打开共享对象文件:没有这样的文件或目录

mysql - PHP mysql 通过单个查询更新多行 SET ='101' where id =1,2,3,7,9

mysql - 如何通过数据透视表选择具有一定关系的行?

java - 最好使用成对列表或两个列表?

mysql - mysql 查询中的分隔行

php - 将 MySQL 数据库连接到多个域

mysql - 选择行计数用作任意行 ID

java - Spring支持的集合类型 - Map VS Props

java - 如何垂直对齐100%宽度?

java - PasswordVerifier示例将无法编译