elo elo 3 2 0 SQLowe świry!
Mam do wykonania do mojej smutnej bazy trzy triggery na zajęcia. No i jeden mi nie działa. Nie wiem gdzie robię błąd.
Struktura tabeli:
`CREATE TABLE brama (
numer INTEGER NOT NULL,
rysunek CHAR(3 CHAR) NOT NULL,
czasookres CHAR(3 CHAR) NOT NULL,
obiekt_id_obj INTEGER NOT NULL,
przedmioty_przeglAdu_id_prz INTEGER NOT NULL,
typ_id_typ INTEGER NOT NULL,
centrala_id_centrala INTEGER NOT NULL
);'
PRzykładowe inserty:
'INSERT INTO BRAMA VALUES(166495, 'TAK', '12M', 7, 7, 3, 3);
INSERT INTO BRAMA VALUES(156549, 'TAK', '12M', 1, 1, 4, 4);
INSERT INTO BRAMA VALUES(214646, 'TAK', '6M', 1, 1, 5, 5);
INSERT INTO BRAMA VALUES(214645, 'TAK', '6M', 1, 1, 6, 6);
INSERT INTO BRAMA VALUES(214644, 'TAK', '6M', 1, 1, 7, 7);'
Jak brama ma numer mniejszy niż 190000, to czasookres musi wynosić 12M.
Więc sobie zrobiłem triggera, który ma to sprawdzać. jak wrzucę nowego inserta np:
'INSERT INTO BRAMA VALUES(132121, 'TAK', '6M', 5, 5, 8, 8);'
to chcę, żeby zmienił czasookres na 12M
Triggera sporządziłem tak:
'CREATE OR REPLACE TRIGGER CZASOOKRES_TRG AFTER
INSERT OR UPDATE ON BRAMA
FOR EACH ROW
WHEN ( (NEW.NUMER < 190000 AND NEW.CZASOOKRES = '6M' ) OR (OLD.NUMER < 190000 AND OLD.CZASOOKRES = '6M' ))
BEGIN
INSERT INTO BRAMA (CZASOOKRES) VALUES ('12M');
END;
/'
No i nie bangla. Wywala mi błąd z obrazka.
Ktoś wie o co cho? :/
#SQL #sqlserver #bazydanych
Masz dokumentację techniczną np na stronie mysql. Jest książka "Murach's MySQL".