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