Witam, czy możecie sprawdzić poprawność zapytania do poniższego taska?
Jeśli coś jeszcze źle to moglibyście poprawić?
Niestety nie mam obecnie jak tego sprawdzić bo sprzęt mi padł i pozostał tylko smartphone wink.gif

W pewnej bazie danych istnieją tabele:
DOCHOD (nr_tem, nr_prac, kwota, data),
TEMAT (nr_tem, nazwatemat, nrp_kt).

Utworzyć trigger, który w przypadku aktualizacji (poleceniem UPDATE) kolumny nr_tem tabeli TEMAT zaktualizuje również odpowiednie wartości kolumny nr_tem w tabeli DOCHOD, a w przypadku usunięcia (poleceniem DELETE) z tabeli TEMAT tematu, w którym wypłacono już jakieś kwoty – zgłosi wyjątek z komunikatem „nie można usunąć wcześniej realizowanego tematu”.



DELIMITER //

CREATE TRIGGER trig_tem1 BEFORE UPDATE ON `temat`
FOR EACH ROW
SET @x = SELECT nr_tem FROM dochod WHERE DATE(data) < CURDATE();
BEGIN
IF NEW.nr_tem == x THEN

CALL raise_application_error(3001, 'nie można usunąć wcześniej realizowanego tematu');
ELSE
UPDATE dochod SET nr_tem = NEW.nr_tem WHERE nr_tem = OLD.nr_tem;
END IF;
END;//

DELIMITER ;