Triggers DB linnad

Создание таблиц

Create table linnad(
linnID int identity(1,1) PRIMARY KEY,
linnanimi varchar(15),
rahvaarv int);

Create table logi(
id int identity(1,1) PRIMARY KEY,
aeg DATETIME,
toiming  varchar(100),
andmed text,
kasutaja varchar(100)
)


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

Создание связей

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 ('Pärnu', 65000, 2)
INSERT INTO maakond(maakond)
VALUES ('Harjumaa');
INSERT INTO maakond(maakond)
VALUES ('Pärnumaa');

Select двух таблиц

SELECT l.linnanimi, l.rahvaarv, m.maakond
FROM linnad l
INNER JOIN maakond m
ON l.maakondID=m.maakondID

Создание тригера на добавление города

CREATE TRIGGER linnaLisamine2
ON linnad
AFTER INSERT
AS
	BEGIN
	INSERT INTO logi(aeg, toiming, 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

--check

INSERT INTO linnad(linnanimi, rahvaarv, maakondID)
VALUES ('Tartu', 65000, 2);
INSERT INTO linnad(linnanimi, rahvaarv, maakondID)
VALUES ('Elva', 5000, 2);
select * FROM maakond;
select * FROM linnad;
select * FROM logi;
--PHPMy admin
CREATE TRIGGER `linnaLisamine` BEFORE INSERT ON `linnad` FOR EACH ROW INSERT INTO logi(aeg, toiming, andmed) VALUES (NOW(), 'uus linn on lisatud', NEW.linnanimi)

CREATE TRIGGER `linnaUuendus` BEFORE UPDATE ON `linnad` FOR EACH ROW INSERT INTO logi (aeg, toiming, andmed) VALUES (NOW(), 'linnanimi on muudetud', CONCAT('muudetud linnanimi ', OLD.linnanimi, ', uus linnanimi ', NEW.linnanimi));