조인 업데이트를 위한 MySQL 구문: 예약 취소 시 열차 용량 증가
다른 테이블의 정보를 기반으로 한 테이블의 열을 업데이트하려면, MySQL은 JOIN UPDATE 구문을 제공합니다. 이는 관련 테이블의 데이터를 기반으로 열을 업데이트해야 하는 시나리오에서 특히 유용할 수 있습니다.
예: 예약 취소 시 열차 용량 증가
두 가지를 고려하세요. 테이블, 기차 및 예약. Reservations 테이블에서 예약이 취소될 때 Train 테이블의 용량 열을 증가시키는 것이 목표입니다.
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";
이 경우 쿼리:
임의 값을 사용한 증분 업데이트
임의의 좌석 수만큼 용량을 늘리려면 r.NoSeats를 원하는 값으로 바꾸면 됩니다. SET 절:
UPDATE Train t JOIN Reservations r ON (t.TrainID = r.Train) SET t.Capacity = t.Capacity + 5;
트랜잭션 관리
단일 트랜잭션에서 증가 및 삭제를 수행하려면:
// 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!