Trigerrite loomine/ oma ülesanne

Ülesanne

Tabelinimi: Arvutid

Väljad: ID, aasta, komponendid, hind, pakkuja

Logi sisu peab sisaldama: kuupäev, user, andmed, tegevus

Trigerid: INSERT triger ja DELETE triger

Protseduurid: INSERT protseduur(Andmete lisamine), UPDATE protseduur(Andmete uuendamine), DELETE protseduur(Andmete kustutamine)

SQL server

Tabeli loomine

create table Arvutid(
id int primary key identity(1,1),
aasta int,
komponentid varchar(40),
hind float,
pakkuja varchar(40))
create table Logi(
kuupäev date, 
_user varchar(40),
andmed text,
tegevus varchar(40))

Esimene trigger

create trigger[insert]
on Arvutid
for insert
as
insert into Logi(kuupäev,_user, andmed, tegevus)
select GETDATE(), USER, 
CONCAT(inserted.komponentid,',',inserted.pakkuja),
'arvuti on lisatud'
from inserted

Kontroll

Teine trigger

create trigger[delete]
on Arvutid
for delete
as
insert into Logi(kuupäev,_user, andmed, tegevus)
select GETDATE(), USER, 
CONCAT(deleted.komponentid,',',deleted.pakkuja),
'arvuti on kustutatud'
from deleted

Kontroll

Protseduurid

Esimene protseduur

create procedure lisamine
@aasta int,
@komponentid varchar(40),
@hind int,
@pakkuja varchar(40)
as
begin
insert into Arvutid(aasta,komponentid,hind,pakkuja)
values (@aasta,@komponentid,@hind,@pakkuja)
end

Kontroll

exec lisamine @aasta=2017,@komponentid='uued komponentid',@hind=987,@pakkuja='randomOÜ';

Teine protseduur

create procedure uuendaminee
@id int,
@asta int,
@komponentid varchar(40),
@hind int,
@pakkuja varchar(40)
as
begin
update Arvutid
set aasta=@asta,komponentid=@komponentid,hind=@hind,pakkuja=@pakkuja
where id=@id;
end

Kontroll

Kolmas protseduur

create procedure kustutamine
@id int
as
begin
delete from Arvutid
where id=@id
end

Kontroll

XXAMP

Tabeli loomine

create table Arvutid(
id int primary key AUTO_INCREMENT,
aasta int,
komponentid varchar(40),
hind float,
pakkuja varchar(40))
create table Logi(
kuupäev date, 
_user varchar(40),
andmed text,
tegevus varchar(40))

Esimene triger

Kontroll

insert into Arvutid(aasta,komponentid,hind,pakkuja)
values(2016,'komponent3',67589,'pakkuka3');
insert into Arvutid(aasta,komponentid,hind,pakkuja)
values(2014,'komponent385',674,'pakkuka44');
select * from Logi

Teine triger

Kontroll

delete from arvutid
where id=2;
select * from Logi;

Protseduurid

Esimene protseduur

Kontroll

Teine protseduur

Kontroll

Kolmas Protseduur

Kontroll

Leave a Reply

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