Veronika Milovzorova portfolio/ est

Auto trigerid

sql server

  1. tabel auto
CREATE TABLE auto(
autoID int primary key identity(1,1),
automark varchar(50),
model varchar(50),
valjastamisaasta int,
hind int
);

INSERT INTO auto (automark, model, valjastamisaasta, hind)
VALUES ('Audi','vana','1997','50732')
INSERT INTO auto (automark, model, valjastamisaasta, hind)
VALUES ('Honda','vintage','1989','90234')
INSERT INTO auto (automark, model, valjastamisaasta, hind)
VALUES ('BMW','uus','2015','70999')
INSERT INTO auto (automark, model, valjastamisaasta, hind)
VALUES ('mustang','uus','2019','90012')
INSERT INTO auto (automark, model, valjastamisaasta, hind)
VALUES ('Benz','vana','1976','10345')

2. tabel omanik

CREATE TABLE omanik(
omanikID int primary key identity(1,1),
nimi varchar(50),
autoID int
foreign key (autoID) references auto(autoID)
);

INSERT INTO omanik (nimi, autoID)
VALUES
('Sarah Brown', 4),   
('Michael Johnson', 2), 
('Emily Davis', 1), 
('Robert Wilson', 5), 
('Laura Anderson', 3);

3. tabel logi

CREATE TABLE logi(
ID int PRIMARY KEY identity(1,1),
andmed TEXT,
kuupaev datetime,
kasutaja varchar(100)
)

4. esimene triger lisamine

CREATE TRIGGER omaniklisamine
ON omanik
FOR INSERT
AS
BEGIN
INSERT INTO logi (kuupaev, andmed, kasutaja)
SELECT GETDATE(),
CONCAT('uus omanik:: ', i.nimi, ' auto: ', a.automark),
SUSER_SNAME() //kasutaja nimi
FROM inserted i
INNER JOIN auto a ON i.autoID = a.autoID;
END;

INSERT INTO omanik (nimi, autoID)
VALUES ('Alice Johnson', 2);

5. teine triger uuendamine

CREATE TRIGGER omanik_uuendamine
ON omanik
AFTER UPDATE
AS
BEGIN
IF UPDATE(autoID)
BEGIN
DECLARE @AutoMark varchar(50);
SELECT @AutoMark = a.automark
FROM auto a
INNER JOIN deleted d ON a.autoID = d.autoID
INNER JOIN inserted i ON a.autoID = i.autoID;

INSERT INTO logi (andmed, kuupaev, kasutaja)
VALUES (
CONCAT('värskenda kasutajat: ', (SELECT nimi FROM inserted), ' auto: ', @AutoMark),
GETDATE(),
SUSER_SNAME() //(kasutaja nimi)
);
END;
END;



UPDATE omanik
SET autoID = 1
WHERE omanikID = 3; 
SELECT * FROM logi;

xampp

1.tabel auto

CREATE TABLE auto(
autoID int primary AUTO_INCREMENT,
automark varchar(50),
model varchar(50),
valjastamisaasta int,
hind int
);

INSERT INTO auto (automark, model, valjastamisaasta, hind)
VALUES ('Audi','vana','1997','50732')
INSERT INTO auto (automark, model, valjastamisaasta, hind)
VALUES ('Honda','vintage','1989','90234')
INSERT INTO auto (automark, model, valjastamisaasta, hind)
VALUES ('BMW','uus','2015','70999')
INSERT INTO auto (automark, model, valjastamisaasta, hind)
VALUES ('mustang','uus','2019','90012')
INSERT INTO auto (automark, model, valjastamisaasta, hind)
VALUES ('Benz','vana','1976','10345')

2. tabel omanik

CREATE TABLE omanik(
omanikID int primary key AUTO_INCREMENT,
nimi varchar(50),
autoID int,
foreign key (autoID) references auto(autoID));

INSERT INTO omanik (nimi, autoID)
VALUES
('Sarah Brown', 4),   
('Michael Johnson', 2), 
('Emily Davis', 1), 
('Robert Wilson', 5), 
('Laura Anderson', 3);

3. tabel logi

CREATE TABLE logi(
ID int PRIMARY KEY AUTO_INCREMENT,
andmed TEXT,
kuupaev datetime,
kasutaja varchar(100)
)

4. esimene triger lisamine

et