Создание таблиц
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));