Rumah >pangkalan data >tutorial mysql >Bagaimana Menggunakan MySQL JOIN UPDATE untuk Menambah Kapasiti Kereta Api Selepas Pembatalan Tempahan?
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:
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!