[英]Inserting into one table from two different tables with auto-increment value
我要從兩個不同的表插入一個表:
在我的driver
表我需要得到driverID
要插入我的car
表的外鍵driverID_FK
。
同時,我需要將manufacturer
表中的brand
, color
和wheel
插入我的car
表中。
我的桌子:
DRIVER
(driverID, name, age, ...)
CAR
(carID, driverID_FK, brand, color, wheel)
MANUFACTURER
(manufacturerID, brand, color, wheel)
我的driverID
是一個自動增量值。 在我的Web應用程序中,可能要在我要插入到car
表中的行之前或之后有其他條目,因此它不一定總是在driver
表中最后插入的行。 我的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 = ?
使用INSERT .. SELECT語法:
INSERT INTO car (driverID, brand, color, wheel)
SELECT driverID, brand, color, wheel
FROM driver, manufacturer
WHERE name = ? AND manufacturerID = ?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.