SQL SERVER
Pärandtabelite loomine:
Tootaja tabeli loomine:
CREATE TABLE Tootaja(
id INT PRIMARY KEY identity(1,1),
nimi VARCHAR(100),
klientID int Foreign Key References Telefoniteenus(TelefoniteenusID));

Tabelid on seotud:

Kolme kirje lisamine vanasse tabelisse:
Insert Into Telefoniteenus (kliendi_nimi,telefoninumbe,maksumus,registreeritud_alates)
Values ('Vlad Andreev','+37254885684',15,'2022-12-24');
Insert Into Telefoniteenus (kliendi_nimi,telefoninumbe,maksumus,registreeritud_alates)
Values ('Oleg Andreev','+37254885685',15,'2022-12-24');
Insert Into Telefoniteenus (kliendi_nimi,telefoninumbe,maksumus,registreeritud_alates)
Values ('Franchesco Andreev','+37254885686',15,'2022-12-24');
select * from Telefoniteenus

TRIGER MIS JÄLGIB TABELISSE LISAMINE:
CREATE TRIGGER Tootajalisamine
ON Tootaja
FOR INSERT
AS
BEGIN
INSERT INTO logi (kuupaev, andmed, kasutaja,tegevus)
SELECT GETDATE(),
CONCAT(inserted.nimi,', ',rt.kliendi_nimi),
USER,
'tootaja on lisatud'
FROM inserted
inner join Telefoniteenus rt on inserted.klientID =rt.TelefoniteenusID
END;
Kontrol:
insert into Tootaja (nimi,klientID)
values ('Oleg andreev',1)
select * from Tootaja
select * from logi

TRIGER MIS JÄLGIB TABELISSE UENDAMINE:
CREATE TRIGGER totajauuendamine
ON Tootaja
AFTER UPDATE
AS
BEGIN
INSERT INTO logi (Kuupaev, Kasutaja, Andmed, Tegevus)
SELECT GETDATE(),
USER,
CONCAT('Vanad andmed: ', deleted.nimi, ', ', rt1.kliendi_nimi, ' Uued andmed: ', inserted.nimi, ', ', rt2.kliendi_nimi),
'Tootaja on uuendatud'
FROM deleted
INNER JOIN Telefoniteenus rt1 ON deleted.klientID = rt1.TelefoniteenusID
INNER JOIN inserted ON deleted.id = inserted.id
INNER JOIN Telefoniteenus rt2 ON inserted.klientID = rt2.TelefoniteenusID
END;
Kontrol:
update Tootaja
set nimi='Oleg Olegov'
where id =3;
select * from tootaja;
select* from logi;

XAMPP:
XAMPPis käsitleti logi ja Telefoniteenuse tabeleid viimase ülesande raames ja neid ei kustutatud.

Tootaja tabeli loomine:
CREATE TABLE Tootaja(
id INT PRIMARY KEY AUTO_INCREMENT,
nimi VARCHAR(100),
klientID int,
Foreign Key (klientID) References Telefoniteenus(TelefoniteenusID));

Kolme kirje lisamine vanasse tabelisse:
Insert Into Telefoniteenus (kliendi_nimi,telefoninumbe,maksumus,registreeritud_alates)
Values ('Vlad Andreev','+37254885684',15,'2022-12-24');
Insert Into Telefoniteenus (kliendi_nimi,telefoninumbe,maksumus,registreeritud_alates)
Values ('Oleg Andreev','+37254885685',15,'2022-12-24');
Insert Into Telefoniteenus (kliendi_nimi,telefoninumbe,maksumus,registreeritud_alates)
Values ('Franchesco Andreev','+37254885686',15,'2022-12-24');
select * from Telefoniteenus
TRIGER MIS JÄLGIB TABELISSE LISAMINE:
INSERT INTO logi (Kuupaev, Andmed, Kasutaja, Tegevus)
SELECT NOW(), CONCAT(NEW.nimi, ', ', te.kliendi_nimi), USER(), 'tootaja on lisatud'
FROM Telefoniteenus te
WHERE te.TelefoniteenusID = NEW.klientID

Kontrol:
insert into Tootaja (nimi,klientID)
values ('Oleg andreev',1)
select * from Tootaja
select * from logi
Tootaja tabel:

Logi tabel:

TRIGER MIS JÄLGIB TABELISSE UUEMINE:
INSERT INTO logi (Kuupaev, Andmed, Kasutaja, Tegevus)
SELECT NOW(), CONCAT('Vanad andmed: ', OLD.nimi, ', ', te1.kliendi_nimi, ' Uued andmed: ', NEW.nimi, ', ', te2.kliendi_nimi),
USER(), 'Tootaja uuendamine'
FROM Tootaja t
INNER JOIN Telefoniteenus te1 ON OLD.klientID = te1.TelefoniteenusID
INNER JOIN Telefoniteenus te2 ON NEW.klientID = te2.TelefoniteenusID
WHERE t.id = NEW.id;

Kontrol:
update Tootaja
set nimi='Oleg Olegov'
where id =3;
select * from tootaja;
select* from logi;
Tootaja tabel:

Logi Tabel

KASUTAJAD
kasutaja ei näe logitabelit

GRANT SELECT, ALTER ON Tootaja TO OpilaneArtur;
GRANT SELECT, ALTER ON Telefoniteenus TO OpilaneArtur;
GRANT SELECT, ALTER ON Tootaja TO dsfsdfs;
GRANT SELECT, ALTER ON Telefoniteenus TO dsfsdfs;