У меня есть 3 стола аптека, есть и лекарства
аптека:
id_pharm name
1 pharm1
2 pharm2
3 pharm3
4 pharm4
5 pharm5
есть
fk_id_pharm amount fk_id_med
1 40 2
1 1 3
2 45 1
2 20 4
3 10 1
3 45 3
лекарства
id_med name
1 med1
2 med2
3 med3
4 med4
5 med5
I Мне нужно вычислить вычисляемый столбец с триггером, который даст мне сумму всех аптек, поэтому я думаю, что мне нужно что-то вроде
id_med name stock
1 med1 55 --(45 + 10)
2 med2 40
3 med3 46 --(45 + 1)
4 med4 20
5 med5 0
мой триггер, попробуйте
ALTER TABLE meds ADD COLUMN stock INT DEFAULT 0;
DELIMITER $$
CREATE TRIGGER `trigger3`
BEFORE INSERT ON `have` FOR EACH ROW BEGIN
UPDATE meds SET stock = (SELECT SUM(have.amount) FROM have INNER JOIN meds ON have.fk_id_med=meds.id_med GROUP BY meds.name);
END $$
DELIMITER ;
, но когда я пытаюсь сделать вставку в иметь
insert into have (fk_pharm_id, amount, fk_med_id) values (5,80,5)
я получил это:
You can't specify target table 'meds' for update in FROM clause