Триггеры 2

 

Maakond tabeli lisamine

CREATE TABLE maakond(
maakondID int Primary KEY identity(1,1),
maakond varchar(100) UNIQUE);

INSERT INTO maakond(maakond)
VALUES (‘Harjumaa’);
INSERT INTO maakond(maakond)
VALUES (‘Pärnumaa’);

ALTER TABLE linnad ADD maakondID int;
ALTER TABLE linnad ADD CONSTRAINT fk_maakond
FOREIGN KEY (maakondID) References maakond(maakondID)
insert into linnad(linnanimi, rahvaarv, maakondID)
values (‘Parnu’, 65000, 2);

SELECT * FROM maakond;
SELECT * FROM linnad;

2. Создание связи

select l.linnanimi, l.rahvaarv, m.maakond
from linnad l
inner join maakond m
on l.maakondID=m.maakondID

3. Создание триггера

CREATE TRIGGER linnaLisamine2
on linnad
after insert
as
begin
insert into logi(aeg, toiming, sisestatud_andmed, kasutaja)
select GETDATE(),
‘linn on lisatud, maakond on valitud’,
CONCAT(inserted.linnanimi, ‘, ‘, m.maakond, ‘, ‘, inserted.rahvaarv),
user
from inserted
inner join maakond m
on inserted.maakondID=m.maakondID;
END

— kontrol
insert into linnad(linnanimi, rahvaarv, maakondID)
values (‘Elva’, 5000, 2);

SELECT * FROM maakond;
SELECT * FROM linnad;
SELECT * FROM logi;

4.

CREATE TRIGGER linnaUuendamine2
on linnad
for update
as
begin
insert into logi(aeg, toiming, sisestatud_andmed, kasutaja)
select GETDATE(),
‘linn on lisatud, maakond on valitud’,
CONCAT(‘Vanad andmed: ‘, deleted.linnanimi, ‘, ‘, m2.maakond, ‘\n Uued andmed ‘, inserted.linnanimi, ‘, ‘, m1.maakond),
user
from deleted
inner join inserted on deleted.linnID=inserted.linnID
inner join maakond m1 on inserted.maakondID=m1.maakondID
inner join maakond m2 on deleted.maakondID=m2.maakondID;

END

— kontroll
update linnad set maakondID=1, linnanimi=’Tallinn’
where linnID=2

SELECT * FROM logi;
SELECT * FROM maakond;
SELECT * FROM linnad;

Работа в XAMPP

Создаем доп таблицу

2.

insert into logi(aeg, toiming, sisestatud_andmed)
select NOW(), ‘linn on lisatud’,
CONCAT(
‘Uued andmed: ‘, NEW.linnanimi,’, ‘,NEW.rahvaarv,’, ‘, maakond),
from linnad l
inner join maakond m on l.maakondID=m.maakondID
WHERE l.linnID=NEW.linnID