Triger – Päästik
Triger see on protsess, millega abil kõik sisse kirjutatud tegevused tehakse automaatselt.
Näiteks, trigeri abil kasutaja saab jälgida mis tegevused olid tehtud andmebaasis (INSERT, UPDATE, DELETE)
Table logi
1 2 3 4 5 6 7 | CREATE TABLE logi( id int PRIMARY KEY AUTO_INCREMENT, kuupaev datetime, kasutaja varchar (100), andmed TEXT, tegevus varchar (100) ); |
XAMPP
Triger mis jälgib lisatud tabelisse andmed

Triger mis jälgib kustutatud tabelisse andmed

Triger mis jälgib uuendatud tabelisse andmed

3 trigerit room tabel



SQL Server
Triger mis jälgib lisatud tabelisse andmed
1 2 3 4 5 6 7 8 9 10 11 12 | 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, ', ' , ' ,' ,inserted.member_since), 'guest on lisatud' FROM inserted --kontroll INSERT INTO guest(first_name,last_name,member_since) VALUES ( 'Timur' , 'Denisenko' , '2022-5-6' ); select * from guest; select * from logi; |
Triger mis jälgib kustutatud tabelisse andmed
1 2 3 4 5 6 7 8 9 10 11 12 | CREATE TRIGGER guestKustuta ON guest FOR DELETE AS INSERT INTO logi(kuupaev,kasutaja,andmed,tegevus) SELECT GETDATE(), USER , CONCAT(deleted.first_name, ', ' ,deleted.last_name, ', ' , ' ,' ,deleted.member_since), 'guest on kustutatud' FROM deleted --kontroll DELETE from guest where guest_id=1; select * from guest; select * from logi; |
Triger mis jälgib uuendatud tabelisse andmed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | CREATE TRIGGER guestUuendamine ON guest FOR UPDATE AS INSERT INTO logi(kuupaev,kasutaja,andmed,tegevus) SELECT GETDATE(), USER , CONCAT( 'vanad andmed: ' ,deleted.first_name, ', ' ,deleted.last_name, ', ' , ' ,' ,deleted.member_since, '\n uued andmed: ' ,inserted.first_name, ', ' ,inserted.last_name, ', ' , ' ,' ,inserted.member_since), 'guest on uuendatud' FROM deleted INNER JOIN inserted ON deleted.guest_id=inserted.guest_id --kontroll select * from guest; update guest set first_name= 'Timur' where guest_id=2; select * from guest; select * from logi; |
3 Trigerit
1 2 3 4 5 6 7 8 9 10 11 12 | 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 ( '505' , 'akula' , 'vaba' ,1); select * from room; select * from logi; |
1 2 3 4 5 6 7 8 9 10 11 12 13 | CREATE TRIGGER roomKustuta ON room FOR DELETE AS INSERT INTO logi(kuupaev,kasutaja,andmed,tegevus) SELECT GETDATE(), USER , CONCAT(deleted.number, ', ' ,deleted. name , ', ' , ' ,' ,deleted.status, ', ' ,deleted.smoke), 'room on kustutatud' FROM deleted --kontroll select * from room; DELETE from room where room_id=3; select * from room; select * from logi; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | CREATE TRIGGER roomUuendamine ON room FOR UPDATE AS INSERT INTO logi(kuupaev,kasutaja,andmed,tegevus) SELECT GETDATE(), USER , CONCAT( 'vanad andmed: ' ,deleted.number, ', ' ,deleted. name , ', ' , ' ,' ,deleted.status, ', ' ,deleted.smoke, '\n uued andmed: ' ,inserted.number, ', ' ,inserted. name , ', ' , ' ,' ,inserted.status, ', ' ,inserted.smoke), 'room on uuendatud' FROM deleted INNER JOIN inserted ON deleted.room_id=inserted.room_id --kontroll select * from room; update room set number= '999' where room_id=4; select * from room; select * from logi; |