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
Lepaskan: 2024-11-24 09:22:14
asal
242 orang telah melayarinya

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)
Salin selepas log masuk

);

-- Status jadual:
BUAT Status JADUAL (

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

);

-- 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)
Salin selepas log masuk

);

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 ;
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan