Loon andmebaas ja tabelid:
create database trigerViblyy; use trigerViblyy; CREATE TABLE toode( toodeID int primary key identity(1,1), toodeNimi varchar(50), hind int); 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.
CREATE TRIGGER toodeLisamine ON toode -- tabel, mis jalgitakse FOR INSERT AS INSERT INTO logi(kasutaja, kuupaev, sisestatudAndmed) SELECT USER, GETDATE(), CONCAT('lisatud andmed', inserted.toodenimi, ', ',inserted.hind) FROM inserted
Kontroll: INSERT INTO toode(toodenimi, hind) VALUES ('ilus pirn', 30); SELECT * FROM toode; SELECT * FROM logi;
DELETE TRIGGER -kustutamise trigger.
CREATE TRIGGER toodeKustutamine ON toode -- tabel, mis jalgitakse FOR DELETE AS INSERT INTO logi(kasutaja, kuupaev, sisestatudAndmed) SELECT USER, GETDATE(), CONCAT('kustutatud andmed: ', deleted.toodenimi, ', ',deleted.hind) FROM deleted
Kontroll:
DELETE FROM toode WHERE toodeID=1; SELECT * FROM toode; SELECT * FROM logi;
UPDATE TRIGGER – uuendamise trigger
CREATE TRIGGER toodeUuendamine ON toode -- tabel, mis jalgitakse 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
kontroll
UPDATE toode SET toodeNimi='orange melon' WHERE toodeID=2; SELECT * FROM toode; SELECT * FROM logi;
Loon uued tabelid
CREATE TABLE categories ( category_id INT IDENTITY (1, 1) PRIMARY KEY, category_name VARCHAR (255) NOT NULL ); CREATE TABLE brands ( brand_id INT IDENTITY (1, 1) PRIMARY KEY, brand_name VARCHAR (255) NOT NULL ); CREATE TABLE products ( product_id INT IDENTITY (1, 1) PRIMARY KEY, product_name VARCHAR (255) NOT NULL, brand_id INT NOT NULL, category_id INT NOT NULL, model_year SMALLINT NOT NULL, list_price DECIMAL (10, 2) NOT NULL, FOREIGN KEY (category_id) REFERENCES categories (category_id) ON DELETE CASCADE ON UPDATE CASCADE, FOREIGN KEY (brand_id) REFERENCES brands (brand_id) ON DELETE CASCADE ON UPDATE CASCADE );