nb в конпекте нет скриншотов результов так как на клавиатуре не работает shift
создание таблицы
create table linnad( linnID int AUTO_INCREMENT PRIMARY KEY, linnanimi varchar( 15), rahvarv int); create table logi( id int AUTO_INCREMENT PRIMARY key, aeg datetime, toiming varchar( 100), andmed varchar( 200))
Триггер на отслеживание добавленных в таблицу linnad записей
insert into logi( aeg,toiming,andmed) values ( Now(), 'uus linn on lisatud', new.linnanimi)
ПРОВЕРКА
INSERT INTO linnad(linnanimi, rahvaarv) Values ('Narva', 436863)
Concat()- объединение данных из нескольких полей
insert into logi( aeg,toiming,andmed) values (Now(), 'uus linn on lisatud', Concat(new.linnanimi, 'rahvarv: ', New.rahvarv) )
ПРОВЕРКА
INSERT INTO linnad(linnanimi, rahvarv) Values ('Pärnu', 70000)
Триггер на отслеживание удаленных в таблице linnad записей
insert into logi ( aeg,toiming,andmed) values ( Now( ), 'linn on kustutatud',OLD.linnanimi)
ПРОВЕРКА
DELETE FROM linnad WHERE linnID=1
Триггер на отслеживание измененных записей в таблице linnad
insert into logi(aeg,toiming,andmed) values (NOW(), 'linnanimi on muudetud', Concat( 'muudetud linnanimi ', old.linnanimi, ', uue linnanimi', new.linnanimi))
ПРОВЕРКА
UPDATE linnad SET linnanimi= 'Pärnuu' WHERE linnID=2
SQL SERVER
создание таблицы
use trigerikasutamine go create table guest ( guestID int primary key identity ( 1,1), firstname varchar ( 80), lasrname varchar ( 80) null, membersince date); create table logi ( id int primary key identity ( 1,1), kuupaev datetime, kasutaja varchar ( 100), andmed text, tegevus varchar ( 100))
первый триггер
use trigerikasutamine; go create table guestkustutamine on guest for delete as insert into logi ( kuupaev,kasutaja,andmed,regevus) select getdate (),user, concat (deleted.firstname,', ',deleted.lastname), 'guest on kustutatud' from deleted