Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengemas kini Status Permintaan Tempahan Selepas Memasukkan ke OccupiedRoom Menggunakan Trigger MySQL?

Bagaimana untuk Mengemas kini Status Permintaan Tempahan Selepas Memasukkan ke OccupiedRoom Menggunakan Trigger MySQL?

DDD
DDDasal
2024-11-24 09:22:14283semak imbas

How to Update a BookingRequest Status After Inserting into OccupiedRoom Using a MySQL Trigger?

MySQL After Insert Trigger Updates Another Table's Lajur

Apabila membuat permintaan tempahan, anda perlu mengemas kini status dalam jadual BookingRequest berdasarkan pemasukan permintaan yang sepadan ke dalam jadual OccupiedRoom. Untuk mencapai matlamat ini, pencetus diperlukan.

Untuk bermula, takrifkan jadual berikut:


-- Jadual Permintaan Tempahan:
BUAT JADUAL Permintaan Tempahan (

idRequest INT NOT NULL AUTO_INCREMENT,
roomClass INT NOT NULL,
inDate DATE NOT NULL,
outDate DATE NOT NULL,
numOfBeds INT NOT NULL,
status INT NOT NULL,
idUser INT NOT NULL,
PRIMARY KEY (idRequest),
INDEX idx_status (status),
INDEX idx_user (idUser)

);

-- Status jadual:
BUAT Status JADUAL (

idStatus INT NOT NULL AUTO_INCREMENT,
nameStatus ENUM('underConsideration', 'approved', 'rejected'),
PRIMARY KEY (idStatus)

);

-- Jadual OccupiedRoom:
BUAT MEJA OccupiedRoom (

idOccupation INT NOT NULL AUTO_INCREMENT,
idRoom INT NOT NULL,
idRequest INT NOT NULL,
PRIMARY KEY (idOccupation),
INDEX idx_id_room (idRoom),
INDEX idx_id_request (idRequest)

);

Sekarang, mari tulis pencetus:

DELIMITER $$
CREATE TRIGGER occupy_trig
AFTER INSERT ON `OccupiedRoom` FOR EACH ROW
begin
       DECLARE id_exists Boolean;
       -- Check BookingRequest table
       SELECT 1
       INTO @id_exists
       FROM BookingRequest
       WHERE BookingRequest.idRequest= NEW.idRequest;

       IF @id_exists = 1
       THEN
           UPDATE BookingRequest
           SET status = '1'
           WHERE idRequest = NEW.idRequest;
        END IF;
END;
$$
DELIMITER ;

Begini cara ia berfungsi:

  1. Setelah memasukkan rekod ke dalam jadual OccupiedRoom, pencetusnya ialah dilaksanakan.
  2. Ia menyemak sama ada rekod padanan wujud dalam jadual BookingRequest melalui subkueri.
  3. Jika perlawanan ditemui, lajur status dalam jadual BookingRequest dikemas kini kepada '1'.

Atas ialah kandungan terperinci Bagaimana untuk Mengemas kini Status Permintaan Tempahan Selepas Memasukkan ke OccupiedRoom Menggunakan Trigger MySQL?. 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