create database trigerTARpv23
use trigerTARpv23
-- tabeli toode
create table toode(
toodeId int primary key AUTO_INCREMENT,
toodeNimi varchar(50),
hind int);
Create table logi(
id int primary key AUTO_INCREMENT,
kasutaja varchar (100),
kuupaev datetime,
sisestatudAndmed text);
Teine tabel
LISAMINE
INSERT INTO logi(kasutaja, kuupaev, sisestatudAndmed)
VALUES (
User(),
NOW(),
CONCAT('lisatud andmed', NEW.toodeNimi, ',',New.hind))

KUSTUTAMINE
INSERT INTO logi(kasutaja, kuupaev, sisestatudAndmed)
VALUES (
User(),
NOW(),
CONCAT('kustutatud andmed - ', OLD.toodeNimi, ', ', OLD.hind))


UUENDAMINE
INSERT INTO logi(kasutaja, kuupaev, sisestatudAndmed)
VALUES (
User(),
NOW(),
CONCAT('vanad andmed - ', OLD.toodeNimi, ' - ', OLD.hind, '\n uued andmed - ', NEW.toodeNimi, ' - ',NEW.hind))


KONTROLL

ISESEISEV
use KinoTARpv23
CREATE TABLE Kava (
filmID INT AUTO_INCREMENT PRIMARY KEY,
filmiNimi VARCHAR (255) NOT NULL,
naitamiseKuupaev DATE NOT NULL,
hind INT NOT NULL
);
CREATE TABLE logi (
logiID INT AUTO_INCREMENT PRIMARY KEY,
kasutaja VARCHAR(100) NOT NULL,
kuupaev DATETIME NOT NULL,
toiming varchar(255) NOT NULL,
sisestatudAndmed text
);
CREATE TABLE Seanss (
seansID INT AUTO_INCREMENT PRIMARY KEY,
filmID INT,
seansiKuupaev DATETIME NOT NULL,
saal INT NOT NULL,
FOREIGN KEY (filmID) REFERENCES Kava(filmID)
);
ALTER TABLE Kava ADD seansID INT;
ALTER TABLE Kava ADD CONSTRAINT fk_seans
FOREIGN KEY (seansID) REFERENCES Seanss(seansID);

Lisamine trigger
Kava lisamine
INSERT INTO logi (kasutaja, kuupaev, toiming, sisestatudAndmed)
SELECT
USER(),NOW(),'Seanss on lisatud',
CONCAT('filmID=', NEW.filmID, ', seanssKuupaev=', NEW.seansiKuupaev, ', saal=', NEW.saal)

Seans lisamine
INSERT INTO logi (kasutaja, kuupaev, toiming, sisestatudAndmed)
SELECT
USER(),NOW(),'Seanss on lisatud',
CONCAT('filmID=', NEW.filmID, ', seanssKuupaev=', NEW.seansiKuupaev, ', saal=', NEW.saal)

UUENDAMINE
Kava uuendamine
INSERT INTO logi (kasutaja, kuupaev, toiming, sisestatudAndmed)
SELECT
USER(),NOW(),'Film on uuendatud',
CONCAT('Vanad andmed - filmiNimi=', OLD.filmiNimi, ', naitamiseKuupaev=', OLD.naitamiseKuupaev, ', hind=', OLD.hind,' Uuendatud andmed - filmiNimi=', NEW.filmiNimi, ', naitamiseKuupaev=', NEW.naitamiseKuupaev, ', hind=', NEW.hind)

Seanss uuendamine
INSERT INTO logi (kasutaja, kuupaev, toiming, sisestatudAndmed)
SELECT
USER(), NOW(), 'Seanss on uuendatud',
CONCAT('Vanad andmed - filmID=', OLD.filmID, ', seanssKuupaev=', OLD.seansiKuupaev, ', saal=', OLD.saal,' Uuendatud andmed - filmID=', NEW.filmID, ', seansiKuupaev=', NEW.seansiKuupaev, ', saal=', NEW.saal)

logi


KASUTAJA

USE KinoTARpv23;
GRANT SELECT ON dbo.Kava TO tootaja;
GRANT INSERT ON dbo.Kava TO tootaja;
GRANT UPDATE ON dbo.Kava TO tootaja;
KONTROLL
SELECT
SELECT * FROM logi;

INSERT
INSERT INTO Kava(
filmiNimi,
naitamiseKuupaev,
hind
)
VALUES (
'Kontroll film 2',
'2912-12-12',
5
);

UPDATE
UPDATE Kava SET filmiNimi = 'uus nimi'
WHERE filmID=2;
SELECT * FROM Kava;

DELETE
DELETE FROM Kava WHERE filmID=1;

root logi kontroll
