У меня есть Car
таблица со столбцами carID, brand, color, price
.Я копирую carID
и color
в другую таблицу Detail
, в которой есть столбцы carID, finish, color
(при этом carID
является внешним ключом из таблицы Car
, а столбец finish
не NULL
).
У меня есть подготовленный оператор SQL:
public void insertToDetail(int carID, String finish){
String sql = "INSERT INTO detail (carID, finish, color) SELECT ?, ?, color FROM car WHERE carID = ?;";
PreparedStatement psmt = connect.prepareStatement(sql);
psmt.setString(1, carID);
psmt.setInt(2, finish);
psmt.setInt(3, carID);
psmt.executeUpdate();
psmt.close();
}
Как проверить, не введено ли точно такое же значение carID
в мою таблицу Detail
?
Я попробовал что-то вроде:
"INSERT INTO detail (carID, finish, color)
SELECT ?, ?, color FROM car
WHERE NOT EXISTS {
SELECT carID
FROM detail
WHERE carID = ?
} ;";
И он дал мне ошибку:
MySQLSyntaxError У вас есть ошибка в вашем синтаксисе SQL;проверьте правильность синтаксиса в руководстве, соответствующем версии вашего сервера MySQL, рядом с '{SELECT carID FROM detail WHERE carID = 123}' в строке 1