ホームページ >データベース >mysql チュートリアル >MySQL JOIN UPDATE を使用して予約キャンセル後に列車の定員を増やすにはどうすればよいですか?
結合更新の MySQL 構文: 予約キャンセル時に列車の定員を増やす
あるテーブルの列を別のテーブルの情報に基づいて更新するには、次のようにします。 MySQL は JOIN UPDATE 構文を提供します。これは、関連テーブルのデータに基づいて列を更新する必要があるシナリオで特に役立ちます。
例: 予約のキャンセル時に列車の定員を増やす
2 つを考えてみましょう。テーブル、列車、予約。目標は、予約テーブルで予約がキャンセルされたときに、Train テーブルの Capacity 列を増分することです。
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 中国語 Web サイトの他の関連記事を参照してください。