SQL TRIGERID

Triger-/trigger – protsess, mille abil tema sisse kirjutatud tegevused automaselt käivitatakse.

create database trigerTARpv23;
use trigerTARpv23;
--loome tabeli toode
Create table toode(
toodeId int primary key identity(1,1),
toodeNimi varchar(50),
hind int);
--loome tabeli,mis täidab triger
Create table logi(
id int primary key identity(1,1),
kasutaja varchar(100),
kuupaev datetime,
sissestatudAndmed text);

INSERT TRIGER-triger, mis jälgib(отслеживает)andmete lisamine tabelisse ja teeb vastava tabelis logi.

CREATE TRIGGER toodeLisamine
ON toode --tabel, mis jälgitakse
FOR INSERT
AS
INSERT INTO logi(kasutaja, kuupaev, sissestatudAndmed )
Select
USER,
GETDATE(),
CONCAT('lisatud andmed ', inserted.toodeNimi, ', ',inserted.hind)
FROM inserted

kontroll

--kontroll
--kontrollimiseks lisame toode
Insert into toode (toodeNimi, hind)
Values ('ilus pirn', 30);
Select * from toode;
select * from logi;

toodeKustutamine

CREATE TRIGGER toodeKustutamine
ON toode --tabel, mis jälgitakse
FOR DELETE
AS
INSERT INTO logi(kasutaja, kuupaev, sissestatudAndmed )
Select
USER,
GETDATE(),
CONCAT('Kustatud andmed: ', deleted.toodeNimi, ', ',deleted.hind)
FROM deleted
DELETE FROM toode
WHERE toodeId=1;

select * from toode;
select * from logi;

UPDATE

CREATE TRIGGER toodeUuendamine
ON toode --tabel, mis jälgitakse
FOR UPDATE
AS
INSERT INTO logi(kasutaja, kuupaev, sissestatudAndmed )
Select
USER,
GETDATE(),
CONCAT('Vanad andmed: ', deleted.toodeNimi, ', ',deleted.hind, ' uued andmed: ', inserted.toodeNimi, ',' ,inserted.hind)
FROM deleted INNER JOIN inserted
ON deleted.toodeId=inserted.toodeId
--kontrollimiseks uuendamine toode
select * from toode;
Update toode set toodeNimi='orange melon' where toodeId=2
select * from toode;
select * from logi;

TRIGERID XAMPP

Päästikud

INSERT INTO logi(kasutaja, kuupaev, sissestatudAndmed )
VALUES(
USER,
NOW(),
CONCAT('lisatud andmed ', NEW.toodeNimi, ', ',NEW.hind))

KUSTATUD

INSERT INTO logi(kasutaja, kuupaev, sissestatudAndmed )
VALUES(
USER(),
NOW(),
CONCAT('kustutatud andmed  -', OLD.toodeNimi, ', ',OLD.hind))

UPDATE

INSERT INTO logi(kasutaja, kuupaev, sissestatudAndmed )
VALUES(
USER(),
NOW(),
CONCAT('vana andmed  -', OLD.toodeNimi, ', ',OLD.hind,
      'uuend andmed -', NEW.toodeNimi, ',',NEW.hind))