Triger (trigger) – protsess, mille abil tema sisse kirjutatud tegevused automaatselt käivitatakse – Avtomoticeski zapuskaet
Триггер (триггер) – процесс, при котором автоматически срабатывают введенные в него действия – Автоматически запускает
create database trigerTARpv23;
use trigerTARpv23;
--loome tabeli
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,
sisestatudAndmed text);
INSERT TRIGER – triger, mis jälgib andmete lisamine tabelisse ja teeb vastava kirje tabelis logi
INSERT TRIGER — триггер, который отслеживает добавление данных в таблицу и протоколирует соответствующую запись в таблице.
CREATE TRIGGER toodeLisamine
ON toode --tabel, mis jälgitakse
FOR INSERT
AS
INSERT INTO logi(kasutaja, kuupaev, sisestatudAndmed)
SELECT
USER,
GETDATE(),
CONCAT('lisatud andmed', inserted.toodenimi, ',', inserted.hind)
FROM inserted
CREATE TRIGGER toodeKustatumine
ON toode --tabel, mis jälgitakse
FOR DELETE
AS
INSERT INTO logi(kasutaja, kuupaev, sisestatudAndmed)
SELECT
USER,
GETDATE(),
CONCAT('kustutatud andmed', deleted.toodenimi, ',', deleted.hind)
FROM deleted
--kontroll
--kontrollimiseks kustutame toode
DELETE FROM toode
WHERE toodeId = 1;
SELECT * FROM toode;
SELECT * FROM logi;
CREATE TRIGGER toodeUuendamine
ON toode --tabel, mis jälgitakse
FOR UPDATE
AS
INSERT INTO logi(kasutaja, kuupaev, sisestatudAndmed)
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 uuendame toode
SELECT * FROM toode;
UPDATE toode SET toodeNimi = 'orange melon'
WHERE toodeId = 2;
SELECT * FROM toode;
SELECT * FROM logi;
toodeKustatumine XXAMP
INSERT INTO logi(kasutaja, kuupaev, sisestatudAndmed)
VALUES(
USER(),
NOW(),
CONCAT('kustutatud andmed', OLD.toodenimi, ',', OLD.hind))

toodeUuendamine
INSERT INTO logi(kasutaja, kuupaev, sisestatudAndmed)
VALUES(
USER(),
NOW(),
CONCAT('vanad andmed ', OLD.toodenimi, ',', OLD.hind,
'\n uued andmed', NEW.toodenimi, ',', NEW.hind))

toodeLisamine
INSERT INTO logi(kasutaja, kuupaev, sisestatudAndmed)
VALUES (
USER(),
NOW(),
CONCAT('lisatud andmed', NEW.toodenimi, ',', NEW.hind))

Iseseisev töö
–kood tabelite loomiseks
CREATE DATABASE Veipland_shop;
USE Veipland_shop;
CREATE TABLE vepid (
veip_ID INT PRIMARY KEY IDENTITY(1,1),
vepi_mudel VARCHAR(100),
vepi_suurus VARCHAR(50),
veip_varv VARCHAR(50)
);
CREATE TABLE logi(
id int primary key identity(1,1),
kasutaja varchar(100),
kuupaev datetime,
sisestatudAndmed text);
–kood tabelite loomiseks (vepidLisamine)
CREATE TRIGGER vepidLisamine
ON vepid
FOR INSERT
AS
INSERT INTO logi(kasutaja, kuupaev, sisestatudAndmed)
SELECT
USER,
GETDATE(),
CONCAT('Lisatud andmed:', inserted.vepi_mudel, ',', inserted.vepi_suurus)
FROM inserted
–koodi kontrollimine

–päästiku loomine (vepidKustatumine)
CREATE TRIGGER vepidKustatumine
ON vepid
FOR DELETE
AS
INSERT INTO logi(kasutaja, kuupaev, sisestatudAndmed)
SELECT
USER,
GETDATE(),
CONCAT('kustatud andmed:', deleted.vepi_mudel, ',', deleted.vepi_suurus)
FROM deleted
–koodi kontrollimine

päästiku loomine (vepidUuendamine)
CREATE TRIGGER vepidUuendamine
ON vepid --tabel, mis jälgitakse
FOR UPDATE
AS
INSERT INTO logi(kasutaja, kuupaev, sisestatudAndmed)
SELECT
USER,
GETDATE(),
CONCAT('vanad andmed:', deleted.vepi_mudel, ',', deleted.vepi_suurus, 'Uued andmed: ', inserted.vepi_mudel, ',', inserted.vepi_suurus)
FROM deleted INNER JOIN inserted
ON deleted.veip_ID = inserted.veip_ID
--kontrollimiseks uuendame toode
SELECT * FROM vepid;
UPDATE vepid SET vepi_mudel = 'orange melon'
WHERE veip_ID = 2;
SELECT * FROM vepid;
SELECT * FROM logi;
–kontrollimiseks uuendame toode

–tabeli täitmine (vepid)
INSERT INTO vepid (vepi_mudel, vepi_suurus, veip_varv)
VALUES ('VapeModel1', 'Small', 'Black'),
('VapeModel2', 'Medium', 'Red'),
('VapeModel3', 'Large', 'Blue'),
('VapeModel4', 'Small', 'Green'),
('VapeModel5', 'Medium', 'Silver');
Iseseisev töö XAMPP
päästikukood
INSERT INTO logi(kasutaja, kuupaev, sisestatudAndmed)
SELECT(
USER(),
NOW(),
CONCAT('Lisatud andmed:', NEW.vepi_mudel, ',', NEW.vepi_suurus))
päästiku loomine


päästikukood
INSERT INTO logi(kasutaja, kuupaev, sisestatudAndmed)
SELECT
USER,
NOW(),
CONCAT('kustatatud andmed:', OLD.vepi_mudel, ',', old.vepi_suurus
päästiku loomine


päästikukood
INSERT INTO logi(kasutaja, kuupaev, sisestatudAndmed)
SELECT(
USER(),
NOW(),
CONCAT('vanad andmed:', OLD.vepi_mudel, ',', OLD.vepi_suurus, '\n uued andmed: ', NEW.vepi_mudel, ',', NEW.vepi_suurus))
päästiku loomine


— Kasutaja loomine

–korrektuur lisamiseks
INSERT INTO vepid (vepi_mudel, vepi_suurus, veip_varv) VALUES ('Model A', 'Large', 'Red');

–eemaldamise kontrollimine
DELETE FROM vepid WHERE veip_ID = 1;

–kontrollige värskendust
UPDATE vepid SET veip_varv = 'Blue' WHERE veip_ID = 1;

