SQL Triger

Protsess, mille abil tema sisse kirjatatud tegevused automaatselt käivitatakse.

CREATE TABLE tootajaAndmed
(
    tootajaId int PRIMARY KEY AUTO_INCREMENT,
    nimi varchar(20) not null,
    perekonnanimi varchar(20) not null,
    ylesanned text);

CREATE TABLE logi
(
    logiId int PRIMARY KEY AUTO_INCREMENT,
    kasutaja varchar(30),
    kuupaev datetime,
    sissestatudAndmed text)

Localhost


Triger, mis jälgib andmete sisestamine tabelisse

CREATE TRIGGER `insertTootaja` 
BEFORE INSERT ON `tootajaandmed` 
FOR EACH ROW INSERT into logi(kasutaja, kuupaev, sissestatudAndmed) values(USER(), NOW(), 
Concat('lisatud andmed: ', NEW.nimi,' ', NEW.perekonnanimi,'ülesanded ', NEW.ylesanned))

Triger, mis jälgib andmete kustutamine tabelist

CREATE TRIGGER `deleteTootaja` BEFORE DELETE ON `tootajaandmed` FOR EACH ROW INSERT into logi(kasutaja, kuupaev, sissestatudAndmed) values(USER(), NOW(), Concat('Kustutatud andmed: ', OLD.nimi,' ', OLD.perekonnanimi,', ülesanded: ', OLD.ylesanned))

Triger, mis jälgib andmete uuendamine tabelist

CREATE TRIGGER `updateTootaja` BEFORE UPDATE ON `tootajaandmed` FOR EACH ROW INSERT into logi(kasutaja, kuupaev, sissestatudAndmed) values(USER(), NOW(), Concat('Vanad andmed: ', OLD.nimi,' ', OLD.perekonnanimi,', ülesanded: ', OLD.ylesanned, 'UUED andmed: ', NEW.nimi,' ', NEW.perekonnanimi,', ülesanded: ', NEW.ylesanned))

SQL server

Triger, mis jälgib andmete sisestamine tabelisse

CREATE TRIGGER insertTootaja ON tootajaandmed
FOR INSERT AS INSERT INTO logi(kasutaja, kuupaev, sissestatudAndmed) 
SELECT USER, GETDATE(), Concat('Lisatud andmed: ', inserted.nimi, ' ', inserted.perekonnanimi) FROM inserted

insert into tootajaAndmed(nimi,perekonnanimi)
values('Danik','Borisov');
select * from tootajaAndmed;
select * from logi

Triger, mis jälgib andmete kustutamine tabelist

CREATE TRIGGER deleteTootaja ON tootajaandmed
FOR DELETE AS INSERT INTO logi(kasutaja, kuupaev, sissestatudAndmed) 
SELECT USER, GETDATE(), Concat('Kustutatud andmed: ', deleted.nimi, ' ', deleted.perekonnanimi) FROM deleted

select * from tootajaAndmed;
delete from tootajaAndmed where tootajaId=2;
select * from tootajaAndmed;
select * from logi

Triger, mis jälgib andmete uuendamine tabelist

CREATE TRIGGER updateTootaja ON tootajaandmed
FOR UPDATE AS INSERT INTO logi(kasutaja, kuupaev, sissestatudAndmed) 
SELECT USER, GETDATE(), Concat('Vanad andmed: ', deleted.nimi, ' ', deleted.perekonnanimi,'---->', inserted.nimi, ' ', inserted.perekonnanimi) FROM deleted INNER JOIN inserted 
ON inserted.tootajaId = deleted.tootajaId

select * from tootajaAndmed;
update tootajaAndmed set nimi='Gregor' where tootajaId=1;
select * from tootajaAndmed;
select * from logi