TRIGERITE loomine localhost’is ja MS SQL Server’s

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 
		

Leave a Reply

Sinu e-postiaadressi ei avaldata. Nõutavad väljad on tähistatud *-ga