SQL
Loonud andmebaasi
create database poe
use poe;

Loonud tabel “klient”
create table klient(
klientId int primary key identity(1,1),
klientiNimi varchar(50),
klientiVanus int,
klientiSugu char(10));

Loodud tabel “Logid”
create table Logid(
logiID int primary key identity(1,1),
kuupaev datetime,
andmed text,
kasutaja varchar (100));

Loonud uue kasutaja
grant insert,update,select on klient to Tootja;

Kasutajaõiguste kontroll

Loodud triger “KliendiLisamine” – lisa uus klient
create trigger KliendiLisamine
on klient
for insert
as
insert into Logid(kasutaja, kuupaev, andmed)
select
user,
getdate(),
CONCAT('Lisatud andmed: ', inserted.klientiNimi, ', ',inserted.klientiVanus, ', ', inserted.klientiSugu)
from inserted

Kontroll
insert into klient(klientiNimi,klientiVanus,klientiSugu)
values ('Sergei Sergeev', 20, 'Mees');
select * from klient

Loodud triger “KliendiUuendamine” – uuenda klient
create trigger KliendiUuendamine
on klient
for update
as
insert into Logid(kasutaja, kuupaev,andmed)
select
user,
getdate(),
CONCAT('Vana andmed: ', deleted.klientiNimi, ', ',deleted.klientiVanus, ', ', deleted.klientiSugu, '. Uued admed: ', inserted.klientiNimi, ', ', inserted.klientiVanus, ', ', inserted.klientiSugu)
from deleted inner join inserted
on deleted.klientId=inserted.klientId

Kontroll
update klient set klientiSugu='Mees'
where klientId=1;


Kontrolli kõik teostatud operatsioonid üle

XAMPP
Loodud tabelid

Loodud uus kasutaja

Loodud trigger lisamine

Loodud trigger uendamine

Kontroll logid tabel

Seotud Tabelid
SQL
loonud tabeli autoRemont
CREATE TABLE autoRemont(
autoID int PRIMARY KEY identity(1,1),
automark varchar(100),
remont text,
klientID int
);
SELECT * FROM autoRemont
Loonud seose
alter table autoremont add foreign key (klientID) references klient(klientId);

triger uue autoremondi lisamiseks
create trigger autoremontLisamine
on autoRemont
for insert
as
insert into logid(kuupaev,andmed,kasutaja)
select
GETDATE(),
CONCAT(
'Autoremont on lisatud: ',a.automark,', ',a.remont, ', ', k.klientiNimi),
USER
from autoRemont a
inner join klient k
on k.klientId=a.klientID;
insert into autoRemont(automark,remont,klientID)
values ('BMW','Rataste vahetus',1);
select * from klient;
select * from Logid;

triger autoremondi uuendamiseks
create trigger autoremontUuendamine
on autoRemont
for update
as
insert into logid(kuupaev,kasutaja,andmed)
select
GETDATE(),
USER,
CONCAT(
'vanad andmed - ', deleted.automark, ', ',deleted.remont, ', ',k1.klientiNimi,
' | uuendatud andmed - ', inserted.automark, ', ',inserted.remont, ', ',k2.klientiNimi)
from deleted
inner join inserted on deleted.klientID=inserted.KlientID
inner join klient k1 on deleted.klientID=k1.klientId
inner join klient k2 on inserted.klientID=k2.klientId;
XAMPP
loonud tabeli autoRemont
CREATE TABLE autoRemont(
autoID int PRIMARY KEY AUTO_INCREMENT,
automark varchar(100),
remont text,
klientID int
);
SELECT * FROM autoRemont

Loonud seose
ALTER TABLE autoremont ADD CONSTRAINT fk_klient
FOREIGN KEY (klientID) References klient(klientId)

Täitis autoremont tabeli

triger uue autoremondi lisamiseks
insert into logid(kuupaev,andmed,kasutaja)
VALUES(
NOW(),
CONCAT(
'Lisatud andmed ja kliendi nimi: ',NEW.remont, ',',NEW.klientiNimi),
USER())
from autoremont a
inner join klient k
on a.klientID=k.klientId
Kontrollimiseks
INSERT INTO autoremont(automark,remont,klientID)
VALUES ('Volvo','Rataste vahetus',1)
triger autoremondi uuendamiseks
INSERT INTO logid(kuupaev,andmed,kasutaja)
SELECT
NOW(),
CONCAT(
'Vana andmed: ',old.automark,', ',old.remont,', ',k1.klientiNimi
' | Uued andmed: ',new.automark,', ',new.remont,', ',k2.klientiNimi)
USER()
from autoremont a
INNER JOIN klient k1 on old.klientId=k1.klientId
INNER JOIN klient k2 on new.klientId=k2.klientId
where a.klientID=new.klientID
Kontrollimiseks