SQL TRIGERID

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;