Protsess, mille käigus toimingud, mis on sinna salvestatud, sooritatakse automaatselt.
Näiteks, Trigeri abil kasutaja saab jälgida mis tegevused oli tehtud andmebassis (INSERT, UPDATE, DELETE)
Процесс, при помощи которого записанные в него действия будут выполнятся автоматически
Например, Триггер поможет узнать что сделал пользователь в базе данных (INSERT, UPDATE, DELETE)
XAMPP
CREATE TABLE logi(
id int PRIMARY KEY AUTO_INCREMENT,
kuupaev DATETIME,
kasutaja varchar(100),
andmed TEXT,
tegevus varchar(100))
INSERT
mis jälgib lisatud tabelisse andmed
INSERT INTO logi(kuupaev, kasutaja, andmed, tegevus)
VALUES (NOW(), USER(),
Concat(NEW.last_name, ', ', NEW.first_name, ', ', NEW.member_since),
'guest on lisatud')

DELETE
mis jälgib kustatud tabelisse andmed
INSERT INTO logi(kuupaev, kasutaja, andmed, tegevus)
VALUES (NOW(), USER(),
Concat(OLD.last_name, ', ', OLD.first_name, ', ', OLD.member_since),
'guest on kustutanud')

DELETE guest
WHERE id=1;
SELECT * FROM guest;
SELECT * FROM logi;
UPDATE
mis jälgib uuendanud tabelisse andmed
INSERT INTO logi(kuupaev, kasutaja, andmed, tegevus)
VALUES (NOW(), USER(),
Concat('vanad andmed: ', OLD.last_name, ', ', OLD.first_name, ', ', OLD.member_since,
' \n UUED ANDMED: ', NEW.last_name, ', ', NEW.first_name, ', ', NEW.member_since),
'guest on uuendatud')

UPDATE guest SET first_name="Luca"
WHERE id=1;
SELECT * FROM guest;
SELECT * FROM logi;
CREATE TABLE room(
id int not null PRIMARY KEY AUTO_INCREMENT,
number varchar(10),
name varchar(40),
status varchar(10),
smoke bit)
INSERT
INSERT INTO logi(kuupaev, kasutaja, andmed, tegevus)
VALUES (NOW(), USER(),
Concat(NEW.number, ', ', NEW.name, ', ', NEW.status, ', ', NEW.smoke),
'guest on lisatud')

DELETE
INSERT INTO logi(kuupaev, kasutaja, andmed, tegevus)
VALUES (NOW(), USER(),
Concat(OLD.number, ', ', OLD.name, ', ', OLD.status, ', ', OLD.smoke),
'guest on kustutanud')

UPDATE
INSERT INTO logi(kuupaev, kasutaja, andmed, tegevus)
VALUES (NOW(), USER(),
Concat('vanad andmed: ', OLD.number, ', ', OLD.name, ', ', OLD.status, ', ', OLD.smoke,
' \n UUED ANDMED: ', NEW.number, ', ', NEW.name, ', ', NEW.status, ', ', NEW.smoke),
'guest on uuendatud')

SQL SERVER
room triger
INSERT
CREATE TRIGGER roomLisamine
ON room
FOR INSERT
AS
INSERT INTO logi(kuupaev, kasutaja, andmed, tegevus)
SELECT GETDATE(), USER, CONCAT(inserted.number, ', ', inserted.name, ', ', inserted.status, ', ', inserted.smoke), 'room on lisatud '
FROM inserted
--kontroll
insert into room(number, name, status, smoke)
values(311,'Tiny','reserved', 1)
SELECT * FROM room
SELECT * FROM logi

DELETE
CREATE TRIGGER roomKustutamine
ON room
FOR DELETE
AS
INSERT INTO logi(kuupaev, kasutaja, andmed, tegevus)
SELECT GETDATE(), USER, CONCAT(deleted.number, ', ', deleted.name, ', ', deleted.status, ', ', deleted.smoke), 'guest on kustatud '
FROM deleted
--kontroll
DELETE FROM room WHERE id=1
SELECT * FROM room
SELECT * FROM logi

UPDATE
CREATE TRIGGER roomUuendamine
ON room
FOR UPDATE
AS
INSERT INTO logi(kuupaev, kasutaja, andmed, tegevus)
SELECT GETDATE(), USER, CONCAT('VANAD - ', deleted.number, ', ', deleted.name, ', ', deleted.status, ', ', deleted.smoke,
' UUED - ', inserted.number, ', ', inserted.name, ', ',
deleted.status, ', ',deleted.smoke), 'room on uuendatud '
FROM deleted INNER JOIN inserted
ON deleted.id=inserted.id
--kontroll
SELECT * FROM room
UPDATE room SET number = 320
WHERE id=2;
SELECT * FROM room
SELECT * FROM logi
