ホームページ >データベース >mysql チュートリアル >MySQL JOIN UPDATE を使用して予約キャンセル後に列車の定員を増やすにはどうすればよいですか?

MySQL JOIN UPDATE を使用して予約キャンセル後に列車の定員を増やすにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-04 00:29:39417ブラウズ

How to Use MySQL JOIN UPDATE to Increment Train Capacity After Reservation Cancellation?

結合更新の 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";

クエリ:

  • JOIN 句は、TrainID 列に基づいて Train テーブルと 予約テーブルの間の関係を確立します。
  • SET 句は、列車内で予約されている座席の数に基づいて定員を増分します。
  • WHERE 句は、以下に基づいて更新する特定の予約を指定します。予約 ID.

任意の値による増分更新

任意の座席数だけ収容力を増やすには、単に 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。