Rumah >pangkalan data >tutorial mysql >Bagaimana Menggunakan MySQL JOIN UPDATE untuk Menambah Kapasiti Kereta Api Selepas Pembatalan Tempahan?

Bagaimana Menggunakan MySQL JOIN UPDATE untuk Menambah Kapasiti Kereta Api Selepas Pembatalan Tempahan?

Patricia Arquette
Patricia Arquetteasal
2025-01-04 00:29:39362semak imbas

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

Sintaks MySQL untuk Kemas Kini Sertai: Menambah Kapasiti Kereta Api pada Pembatalan Tempahan

Untuk mengemas kini lajur dalam satu jadual berdasarkan maklumat daripada jadual lain, MySQL menyediakan sintaks JOIN UPDATE. Ini amat berguna dalam senario di mana anda perlu mengemas kini lajur berdasarkan data dalam jadual yang berkaitan.

Contoh: Meningkatkan Kapasiti Kereta Api pada Pembatalan Tempahan

Pertimbangkan dua meja, Keretapi dan Tempahan. Matlamatnya adalah untuk menambah lajur Kapasiti dalam jadual Kereta api apabila tempahan dibatalkan dalam jadual Tempahan.

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

Pertanyaan untuk Menambah Kapasiti

KEMASKINI SERTAI sintaks untuk senario ini ialah:

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

Dalam ini pertanyaan:

  • Klausa JOIN mewujudkan hubungan antara jadual Keretapi dan Tempahan berdasarkan lajur TrainID.
  • Klausa SET menambah kapasiti berdasarkan bilangan tempat duduk yang dikhaskan dalam tempahan yang sepadan.
  • Klausa WHERE menentukan tempahan khusus untuk dikemas kini berdasarkan ReservationID.

Kemas Kini Bertambah dengan Nilai Arbitrari

Untuk menambah kapasiti dengan bilangan tempat duduk yang sewenang-wenangnya, cuma gantikan r.NoSeats dengan nilai yang dikehendaki dalam Klausa SET:

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

Transaksi Pengurusan

Untuk melakukan kenaikan dan pemadaman dalam satu transaksi:

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

Dengan melaksanakan kemas kini sebelum pemadaman, kapasiti akan dinaikkan dengan betul sebelum tempahan dialih keluar.

Atas ialah kandungan terperinci Bagaimana Menggunakan MySQL JOIN UPDATE untuk Menambah Kapasiti Kereta Api Selepas Pembatalan Tempahan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn