Triger – Процесс, при помощи которого записанные в него действия будут выполнятся автоматически/Protsess, mille käigus toimingud, mis on sinna salvestatud, sooritatakse automaatselt.
Näiteks, Trigeri abi kasutaja saab jäigida mis tegevused oli tehtd amndmebaasis [Insert],[Update] ,[Delete]
Päästik –
INSERT INTO logi(Kuupaev,Kasutaja,Andmed,Tegevus)
VALUES(NOW(),USER(),NEW.last_name,'guest on lisattud')
INSERT INTO logi(Kuupaev,Kasutaja,Andmed,Tegevus)
VALUES(NOW(),USER(),
Concat(NEW.last_name,', ',New.first_name,', ',NEW.member_since )
,'guest on lisattud')
Trigger tabelisse lisatud kirjete jälgimiseks:

Trigger tabeli kustutatud kirjete jälgimiseks:

INSERT INTO logi(Kuupaev,Kasutaja,Andmed,Tegevus)
VALUES(NOW(),USER(),
Concat(Old.last_name,', ',old.first_name,', ',Old.member_since )
,'guest on kustatatud')
Trigger muudetud kirjete jälgimiseks linnad tabeli:

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 uendatud')
ROOM TABLE TRIGER:
CREATE TABLE room(
roomID int PRIMARY KEY AUTO_INCREMENT,
number varchar(10) ,
status varchar(10) ,
name varchar(40) ,
smoke BIT);
INSERT INTO logi(Kuupaev,Kasutaja,Andmed,Tegevus)
VALUES(NOW(),USER(),
Concat(NEW.number,', ',New.status,', ',NEW.name,', ', NEw.smoke)
,'guest on lisattud')


INSERT INTO logi(Kuupaev,Kasutaja,Andmed,Tegevus)
VALUES(NOW(),USER(),
Concat(old.number,', ',old.status,', ',old.name,', ', old.smoke)
,'guest on kustatud')


INSERT INTO logi(Kuupaev,Kasutaja,Andmed,Tegevus)
VALUES(NOW(),USER(),
Concat('vanad andmed: ',old.number,', ',old.status,', ',old.name,', ', old.smoke ,'\n uued andmed:,', NEW.number,', ',New.status,', ',NEW.name,', ', NEw.smoke)
,'guest on uendatud')

MICROSOFT SQL TRIGER
create trigger guestLisamine
On guest
For INsert
As
INSERT INTO logi(Kuupaev,Kasutaja,Andmed,Tegevus)
Select GETDATE(), USER,
Concat(inserted.first_name, inserted.last_name), 'guest on lisatud'
from inserted

CREATE TABLE room(
roomID int PRIMARY KEY identity(1,1),
number varchar(10) ,
status varchar(10) ,
name varchar(40) ,
smoke BIT);

Insert Into room(number,status,name,smoke)
Values ('1','booked','1 room',1);
Insert Into room(number,status,name,smoke)
Values ('2','booked','5 room',0)

create trigger roomLisamine
On room
For INsert
As
INSERT INTO logi(Kuupaev,Kasutaja,Andmed,Tegevus)
Select GETDATE(), USER,
Concat(inserted.number,', ', inserted.status,', ', inserted.name, ', ', inserted.smoke), 'guest on lisatud'
from inserted
Insert Into room(number,status,name,smoke)
Values ('3','booked','4 room',1)
select * from room;
select * from logi;
create trigger roomKustutamine
On room
For delete
As
INSERT INTO logi(Kuupaev,Kasutaja,Andmed,Tegevus)
Select GETDATE(), USER,
Concat(deleted.number,', ', deleted.status,', ', deleted.name, ', ', deleted.smoke), 'guest on kustatud'
from deleted
delete from guest where guestID = 2
select * from room;
select * from logi;


create trigger roomuuendamine
On room
For update
As
INSERT INTO logi(Kuupaev,Kasutaja,Andmed,Tegevus)
Select GETDATE(), USER,
Concat('vanad - ',deleted.number,', ', deleted.status,', ', deleted.name, ', ', deleted.smoke, ' uued - '
, inserted.number,', ', inserted.status,', ', inserted.name, ', ', inserted.smoke), 'guest on uuendatud'
from deleted inner join inserted
on deleted.roomId =inserted.roomId
update room
set name='cool room'
where roomID=1
select * from room;
select * from logi;