Trigger INNER JOIN

XAMPP

INSERT

INSERT INTO logi(kuupaev, kasutaja, andmed)
SELECT NOW(), USER(),
CONCAT('Uued andmed: ', NEW.linn, ', ', m.maakond)
FROM linn l
INNER JOIN maakond m 
ON l.maakondID = m.maakondID
WHERE l.linnID=NEW.linnID

UPDATE

viga ekraanil selle asemel, et NEOW() peaks olema NOW() Märkasin seda liiga hilja

INSERT INTO logi(kuupaev, kasutaja, andmed)
SELECT NOW(), USER(),
CONCAT('Vanad andmed: ', OLD.linn, ', ', m1.maakond, ' Uued andmed: ', NEW.linn, ', ', m2.maakond)
FROM linn l
INNER JOIN maakond m1 ON OLD.maakondID = m1.maakondID
INNER JOIN maakond m2 ON NEW.maakondID = m2.maakondID
WHERE l.linnID=NEW.linnID

Siis vahetasin päästikut ja kõik on korras

SQL SERVER

INSERT

CREATE TRIGGER linnaLisamine
ON linn
FOR INSERT
AS
INSERT INTO logi(kuupaev, kasutaja, andmed)
SELECT GETDATE(), USER,
       Concat(inserted.linn, ', ', m.maakond)
FROM inserted
INNER JOIN maakond m ON inserted.maakondID = m.maakondID;
--kontroll
INSERT INTO linn(linn, maakondID)
VALUES('Tartu', 3)
SELECT * FROM linn
SELECT * FROM logi

UPDATE

CREATE TRIGGER linnaUuendamine
ON linn
FOR UPDATE
AS
INSERT INTO logi(kuupaev, kasutaja, andmed)
SELECT GETDATE(), USER,
       Concat('Vanad andmed: ', deleted.linn, ', ', m1.maakond, ' Uued andmed: ', inserted.linn, ', ', m2.maakond)
FROM deleted
INNER JOIN inserted ON deleted.linnID = inserted.linnID
INNER JOIN maakond m1 ON deleted.maakondID = m1.maakondID
INNER JOIN maakond m2 ON inserted.maakondID = m2.maakondID;
--kontroll
SELECT * FROM linn
UPDATE linn SET maakondID=2
WHERE linn='Tallinn'
SELECT * FROM linn
SELECT * FROM logi