我正在从两个不同的表插入到一个表中:
在我的 driver
表中,我需要将 driverID
作为外键插入到我的 car
表中 driverID_FK
.
同时,我需要从我的 manufacturer
表中插入 brand
、color
和 wheel
进入我的 car
表。
我的 table :
DRIVER
(driverID, name, age, ...)
CAR
(carID, driverID_FK, brand, color, wheel)
MANUFACTURER
(manufacturerID, brand, color, wheel)
我的driverID
是一个自动增量值。在我的 Web 应用程序中,我想要插入到 car
表中的行之前或之后可能还有其他条目,因此它并不总是我的 driver
中最后插入的行 table 。我的manufacturer
表中的brand、color、wheel
值也是如此。
这是到目前为止我准备好的 SQL:
String name = //taken from another method...
int manufacturerID = //taken from another method...
String sql = "INSERT INTO car (driverID_FK, brand, color, wheel)
+ SELECT driverID FROM driver WHERE name = ?,
+ SELECT brand, color, wheel FROM manufacturer WHERE manufacturerID = ? ;";
PreparedStatement psmt = connect.prepareStatement(sql);
psmt.setString(1, name);
psmt.setInt(2, manufacturerID);
psmt.executeUpdate();
psmt.close();
非常感谢任何建议
最佳答案
查询1:获取驱动程序ID:
SELECT driverID INTO @driverID
FROM driver
WHERE name = ?
插入制造商信息以及之前的@driverID
:
INSERT INTO car (driverID, brand, color, wheel)
SELECT @driverID, brand, color, wheel
FROM manufacturer
WHERE manufacturerID = ?
关于java - 从两个不同的表插入一个表并具有自动增量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53604632/