SQL Server
create table klass(
id int primary key identity(1,1),
mahutavus int,
korpus char(1),
olek varchar(40),
oppiaine varchar(40)
);

create table logi(
id int PRIMARY key identity(1,1),
kuupaev datetime,
toiming varchar(100),
andmed TEXT);

Triger mis jälgib INSERT
create trigger klassLisamine
on klass
for insert
as
insert into logi(kuupaev, toiming, andmed)
select GETDATE(),
CONCAT(inserted.mahutavus, ', ', inserted.korpus, ', ', inserted.olek, ', ', inserted.oppiaine),
'klass on lisatud'
from inserted
--kontroll
insert into klass(mahutavus,korpus,olek,oppiaine)
values(30,'A','remonditud','fyysika');
select * from klass;
select * from logi;


Triger mis jälgib UPDATE
create trigger klassUuendamine
on klass
for update
as
insert into logi(kuupaev, toiming, andmed)
select GETDATE(),
CONCAT('VANAD - ', deleted.mahutavus, ', ', deleted.korpus, ', ', deleted.olek, ', ', deleted.oppiaine,
' UUED - ', inserted.mahutavus, ', ', inserted.korpus, ', ', inserted.olek, ', ', inserted.oppiaine),
'klass on uuendatud'
from deleted INNER JOIN inserted
on deleted.id = inserted.id
--kontroll
select * from klass
update klass SET oppiaine = 'bioloogia'
where id = 1;
select * from klass;
select * from logi;

2. tabel mis oli uuendatud
3. logi andmed
Triger mis jälgib DELETE
create trigger klassKustutamine
on klass
for delete
as
insert into logi(kuupaev, toiming, andmed)
select GETDATE(),
CONCAT(deleted.mahutavus, ', ', deleted.korpus, ', ', deleted.olek, ', ', deleted.oppiaine),
'klass on kustutatud'
from deleted
--kontroll
delete from klass
where id=2;
select * from klass;
select * from logi;

2. näitab logis mis juhtus viimase andmega tabelist klass
Protseduurid
Lisamine ehk insert
--Andmete lisamine Protseduur
use Klass;
go
create procedure Lisamineklass
@mahutavus int,
@korpus char(1),
@olek varchar(40),
@oppiaine varchar(40)
as
begin
insert into klass(mahutavus,korpus,olek,oppiaine)
values(@mahutavus, @korpus, @olek, @oppiaine);
select * from klass;
select * from logi;
end
exec Lisamineklass @mahutavus = 35, @korpus = 'B', @olek = 'remonditud', @oppiaine = 'ajalugu'

2. logi tabelis on kirjutatud mis juhtus tabelis klass
Kuva kõik nimega
use Klass;
go
create procedure Otsingklass
@taht char(1)
as
begin
select * from klass
where oppiaine like @taht + '%';
end
exec Otsingklass @taht='b'

Kustuta id järgi
use Klass;
go
create procedure Kustutaklass
@kustutaID int
as
begin
select * from klass;
delete from klass
where id=@kustutaID;
select * from klass;
select * from logi;
end
exec Kustutaklass @kustutaID=3;

2. klass tabel pärast kustutamist
3. logi tabeli sisu pärast klass tabeli kustutamist
XAMPP
create table klass(
id int primary key AUTO_INCREMENT,
mahutavus int,
korpus char(1),
olek varchar(40),
oppiaine varchar(40)
);

create table logi(
id int PRIMARY key AUTO_INCREMENT,
kuupaev datetime,
toiming varchar(100),
andmed TEXT);

Triger mis jälgib lisamist

insert into logi(kuupaev, andmed, toiming)
values (NOW(),
Concat(NEW.mahutavus, ', ', NEW.korpus, ', ', NEW.olek, ', ', NEW.oppiaine),
'klass on lisatud')
insert into klass(mahutavus,korpus,olek,oppiaine)
values(30,'A','remonditud','fyysika');


Triger mis jälgib kustutamist

insert into logi(kuupaev, andmed, toiming)
values(NOW(),
Concat(OLD.mahutavus, ', ', OLD.korpus, ', ', OLD.olek, ', ', OLD.oppiaine),
'klass on kustutatud')
delete from klass
where id=1;
select * from klass;
select * from logi;


Triger mis jälgib uuendamist

insert into logi(kuupaev, andmed, toiming)
values (NOW(),
Concat('vanad andmed: ',OLD.mahutavus, ', ', OLD.korpus, ', ', OLD.olek, ', ', OLD.oppiaine,
'\n uued andmed: ',NEW.mahutavus, ', ', NEW.korpus, ', ', NEW.olek, ', ', NEW.oppiaine),
'klass on uuendatud')
update klass SET oppiaine = "ajalugu"
Where id = 2;
select * from klass;
select * from logi;


Protseduurid
Lisamise protseduur

CALL Lisaklass(40, 'B', 'remonditud', 'eestikeel');


Kuva kõik nimega

call Otsingklass('a')

Kustuta id järgi

