Скопировать какой-нибудь столбец в другую таблицу и вставить новые значения в тот же оператор SQL? - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть Car таблица со столбцами carID, brand, color, price.Я хочу скопировать только color в другую таблицу Detail со столбцами finish, color.И столбец Finish не является NULL.

Возможно ли одновременно скопировать Color из таблицы Car в мою таблицу 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.

1 Ответ

0 голосов
/ 30 ноября 2018

Вы действительно не сказали нам, в чем заключается проблема, с которой вы столкнулись ...

Но в любом случае, это:

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

Оставшуюся часть кода не нужно менять.

...