連接更新的MySQL 語法:取消預訂時增加列車容量
要根據另一個表中的資訊更新一個表格中的列, MySQL 提供了JOIN UPDATE 語法。這在您需要根據相關表中的資料更新列的情況下特別有用。
例如:取消預訂時增加列車容量
考慮兩個桌子、火車和預訂。目標是在預訂表中取消預訂時增加列車表中的容量列。
Train +----------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+-------------+------+-----+---------+-------+ | TrainID | varchar(11) | NO | PRI | NULL | | | Capacity | int(11) | NO | | 50 | | +----------+-------------+------+-----+---------+-------+ Reservations +---------------+-------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +---------------+-------------+------+-----+---------+----------------+ | ReservationID | int(11) | NO | PRI | NULL | auto_increment | | FirstName | varchar(30) | NO | | NULL | | | LastName | varchar(30) | NO | | NULL | | | DDate | date | NO | | NULL | | | NoSeats | int(2) | NO | | NULL | | | Route | varchar(11) | NO | | NULL | | | Train | varchar(11) | NO | | NULL | | +---------------+-------------+------+-----+---------+----------------+
增加容量的查詢
JOIN UPDATE此場景的語法為:
UPDATE Train t JOIN Reservations r ON (t.TrainID = r.Train) SET t.Capacity = t.Capacity + r.NoSeats WHERE r.ReservationID = "15";
在此查詢:
任意值的增量更新
要以任意數量的增量更新
UPDATE Train t JOIN Reservations r ON (t.TrainID = r.Train) SET t.Capacity = t.Capacity + 5;
要以任意數量的座位增加容量,只需將r.NoSeats 替換為所需的值即可SET子句:
交易管理
// Java transaction management code try { // Perform the capacity increment execute SQL UPDATE statement // Delete the reservation execute SQL DELETE statement } catch (SQLException e) { // Transaction rollback logic if an error occurs } finally { // Transaction cleanup logic }
在單一交易中執行增量和刪除:
透過在刪除之前執行更新,可以在刪除預留之前正確增加容量。以上是取消預訂後如何使用 MySQL JOIN UPDATE 增加列車容量?的詳細內容。更多資訊請關注PHP中文網其他相關文章!