Ü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


