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
Libérer: 2025-01-04 00:29:39
original
356 Les gens l'ont consulté

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    |                |
+---------------+-------------+------+-----+---------+----------------+
Copier après la connexion

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";
Copier après la connexion

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;
Copier après la connexion

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
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal