Skip to content
Главная страница » Trigerrite loomine/ oma ülesanne

Trigerrite loomine/ oma ülesanne

1.Tabelinimi õpeained: hinne, õpilane, õppeaine, klass, õpetaja.
2. tabeli logi sisu: id, kuupaev, kasutaja , andmed, tegevus
3.trigerid peavad tegema:  trigger lisamine ja kustutamine.
4.protseduurid on vaja teha: lisamine, kustutamine, Count

SQL server

täielik kood

create table opeained (
id int primary key identity(1,1),
hinne int,
opilane varchar(20),
oppeaine varchar(20),
klass varchar(20),
opetaja varchar(20),
);

create table logi(
id int primary key identity(1,1),
kuupaev datetime,
kasutaja varchar(100),
andmed TEXT)

--Arvestus(arvestusID,nimi,isikukood,id).

create table arvestus(
arvestusID int primary key identity(1,1),
nimi varchar(50),
isikukood varchar(50),
id int FOREIGN KEY REFERENCES opeained(id)
);

INSERT INTO opeained (hinne, opilane, oppeaine, klass, opetaja)
VALUES
    (4, 'Mart', 'Matemaatika', '112A', 'Kati'),
    (2, 'Liisa', 'Ajalugu', '121B', 'Jaan'),
    (5, 'Peeter', 'Füüsika', '140C', 'Eva'),
    (3, 'Kadi', 'Keemia', '112B', 'Toomas'),
    (3, 'Andres', 'Bioloogia', '151A', 'Mari');

create trigger opeainedLisamine
on opeained
for insert
as
INSERT INTO logi(kuupaev, kasutaja, andmed, tegevus)
select getdate(), user, concat(inserted.opilane, ', ', inserted.hinne), 'õpilane on lisatud'
from inserted

--kontroll

INSERT INTO opeained (hinne, opilane, oppeaine, klass, opetaja)
values (5, 'Anya', 'Durava', '131B', 'Irina');
select * from opeained
select * from logi

create trigger opeainedKustutamine
on opeained
for delete
as
INSERT INTO logi(kuupaev, kasutaja, andmed, tegevus)
select getdate(), user, concat(deleted.opilane, ', ', deleted.hinne), 'guest on kustatud'
from deleted

--kontroll

delete from opeained where id=6
select * from opeained;
select * from logi;

create procedure lisaOpeained
@hinne int,
@opilane varchar(20),
@oppeaine varchar(20),
@klass varchar(20),
@opetaja varchar(20)
as
begin
insert into opeained(hinne, opilane, oppeaine, klass, opetaja)
values(@hinne, @opilane, @oppeaine, @klass, @opetaja);
select * from opeained;
select * from logi;
end;

exec lisaOpeained 5, 'Anya', 'Durava', '131B', 'Irina';

create procedure kustutaOpeained
@ID int
as
begin
select * from opeained;
delete from opeained
where @id=id;
select * from opeained;
select * from logi;
end;

exec kustutaOpeained 3;

create procedure countOpeained2
as
begin
declare @count int;
select @count = count(*) from opeained;
select @count as 'GuestCount';
end;

exec countOpeained2;


--Triger lisamine
create trigger arvestuslisamine
on arvestus
for insert
as
insert into logi(kuupaev, andmed, kasutaja)
select getdate(),
concat(inserted.nimi, ', ', g.hinne),
user
from inserted
inner join opeained g on g.id=g.id

INSERT INTO arvestus (nimi, isikukood, id)
VALUES
    ('Papa', '59473645431', 1);
select * from arvestus
select * from logi
select * from opeained


--Triger uuendamisel
create trigger arvestusuuendamine
on arvestus
for update
as
insert into logi(kuupaev, andmed, kasutaja)
select getdate(),
concat('Vanad andmed: ', deleted.nimi, ', ', g1.hinne, 'Uued: ', inserted.nimi, ', ', g1.hinne),
user
from deleted
inner join inserted on deleted.id=inserted.id
inner join opeained g1 on deleted.id=g1.id
inner join opeained g2 on inserted.id=g2.id

select * from arvestus;
update arvestus set arvestusID=2
where nimi='Nom'
select * from arvestus;
select * from logi;

UPDATE arvestus
SET arvestusID = 2
WHERE nimi = 'Nom';

UPDATE arvestus
SET nimi = 'NewName', id = 2
WHERE arvestusID = 1; -- Specify the condition to identify the record you want to update

-- Check the updated arvestus table
SELECT * FROM arvestus;

trigger lisamine

päästik kustutamine

PROTSEDUURID

lisamine protseduur

soorituse tulemus

kustutamine

soorituse tulemus

Count’i protseduur

soorituse tulemus

XAMPP

tabelite loomine

trigger lisamine

kontroll

päästik kustutamine

kontroll

protseduurid

insert protseduur

soorituse tulemus

delete protseduur

kontroll

count protseduur

kontroll

Uue ülesanne 2 trigerid


1.lisa veel üks tabel – Arvestus(arvestusID,nimi,isikukood,id).
tabelid on omavahel seotud – õpeained.id=Arvestus.id
2.Koosta trigeri mis jälgib lisamine ja uuendamine tabelis Arvestus ja näitab nimi teisest tabelist.
3.Kontrolli trigeri tegevust.

SQL SERVER

lisamine triger

kontroll

uuendamine triger

kontroll

XAMPP

loonud tabelid

andmetega

lisamine triger

kontroll

logi

uuendamine triger