容量変更のための MySQL 結合更新構文
MySQL で複数のテーブルを更新する場合、マルチテーブル UPDATE 構文を使用できます。この構文を活用して、予約のキャンセルに基づいて列車の定員を増やす必要があるユースケースを解決する方法を見てみましょう。
問題ステートメント:
を検討してください。列車と予約の 2 つのテーブル。予約がキャンセルされたときに、特定の列車の定員を増やしたいと考えています。
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 | | +---------------+-------------+------+-----+---------+----------------+
解決策:
マルチテーブル UPDATE 構文を使用すると、増分できます。特定の条件を指定した場合、予約テーブルの NoSeats 値に基づく列車テーブルの定員列RegistrationID.
UPDATE Reservations r JOIN Train t ON (r.Train = t.TrainID) SET t.Capacity = t.Capacity + r.NoSeats WHERE r.ReservationID = ?;
または、任意の座席数ずつ増加するには、上記のクエリで r.NoSeats を目的の値に変更するだけです。
トランザクションに関する考慮事項:
はい、Java トランザクション内で増分と削除を行うことができます。データの整合性を確保するには、最初に更新操作を実行し、続いて削除を実行します。
複数テーブルの UPDATE 構文を使用すると、Train テーブルを効率的に更新し、予約のキャンセルに基づいてその Capacity 値を変更できるため、複数のテーブル間でデータを同期します。
以上が予約キャンセル後に複数テーブル UPDATE 構文を使用して MySQL トレイン キャパシティを更新する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。