Maison >base de données >tutoriel mysql >Comment utiliser MySQL JOIN UPDATE pour augmenter la capacité du train après l'annulation d'une réservation ?

Comment utiliser MySQL JOIN UPDATE pour augmenter la capacité du train après l'annulation d'une réservation ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-04 00:29:39391parcourir

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

Syntaxe MySQL pour les mises à jour de jointure : incrémentation de la capacité du train en cas d'annulation de réservation

Pour mettre à jour une colonne dans une table en fonction des informations d'une autre table, MySQL fournit une syntaxe JOIN UPDATE. Cela peut être particulièrement utile dans les scénarios où vous devez mettre à jour une colonne en fonction des données d'une table associée.

Exemple : Augmenter la capacité du train en cas d'annulation de réservation

Considérez deux : tables, Train et Réservations. L'objectif est d'incrémenter la colonne Capacité dans la table Train lorsqu'une réservation est annulée dans la table Réservations.

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    |                |
+---------------+-------------+------+-----+---------+----------------+

Requête pour incrémenter la capacité

La MISE À JOUR JOIN la syntaxe de ce scénario serait :

UPDATE Train t
JOIN Reservations r ON (t.TrainID = r.Train)
SET t.Capacity = t.Capacity + r.NoSeats
WHERE r.ReservationID = "15";

Dans ce requête :

  • La clause JOIN établit une relation entre les tables Train et Reservations en fonction de la colonne TrainID.
  • La clause SET incrémente la capacité en fonction du nombre de sièges réservés dans la réservation correspondante.
  • La clause WHERE précise la réservation spécifique à mettre à jour en fonction de ReservationID.

Mise à jour incrémentielle avec valeur arbitraire

Pour incrémenter la capacité d'un nombre arbitraire de sièges, remplacez simplement r.NoSeats par la valeur souhaitée dans le Clause SET :

UPDATE Train t
JOIN Reservations r ON (t.TrainID = r.Train)
SET t.Capacity = t.Capacity + 5;

Transaction Gestion

Pour effectuer l'incrément et la suppression en une seule transaction :

// 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
}

En exécutant la mise à jour avant la suppression, la capacité sera incrémentée correctement avant la suppression de la réservation.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn