MySQL, check

0

Witam. Mam tabelę magazyn, w której mam ilość towarów. Mam także tabelę zakupy z id klienta, id towaru i ilością sztuk. chciałbym móc wstawiać do tabeli zakupy (kupować ilość towaru, tylko wtedy, gdy tyle znajduje się w magazynie, oraz, żeby po dodaniu zmniejszała się ilość w magazynie). Czy muszę napisać jakąś funkcję? Jak to rozwiązać? Próbowałem za pomocą CHECK:

INSERT INTO zakupy (id_klienta, id_towaru, ilosc_sztuk) VALUES (1, 3, CHECK(magazyn.ilosc_sztuk >= 2));

ale daje mi błąd składni.

0

Wyczytałem, że trzeba i można zrobić to trigerrem, napisałem taki, ale "nie działa", tzn. pozwala na insert większej ilości, niż jest w magazynie:

DELIMITER $$ CREATE TRIGGER spr_stan_magazynu BEFORE INSERT ON zakupy FOR EACH ROW BEGIN IF magazyn.ilosc_sztuk < zakupy.ilosc_sztuk THEN CALL fail('Za malo produktow w magazynie'); END IF; END $$ DELIMITER;

(Wcześniej nie byłem zalogowany, coś nie mogłem się zalogować;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1