I have a problem in a trigger that will calculate the data taking values from one table row and multiplying it by another from different table and putting the value in. I come up with such a trigger:
DELIMITER $$
CREATE TRIGGER liczy_zarobek_koszyk
BEFORE INSERT
ON koszyk
FOR EACH ROW BEGIN
INSERT FROM koszyk SET a = NEW.koszyk_ilosc; - ERROR
INSERT FROM produkty SET b = NEW.produkt_zarobek; -ERROR
UPDATE koszyk SET koszyk_zarobek = a * b;
END;
$$
but it seems to have errors. I would appreciate any advise in fixing the problem :)
TABLES:
CREATE TABLE `rowerowy`.`koszyk` (
`koszyk_id` INT NOT NULL AUTO_INCREMENT ,
`koszyk_ilosc` INT(10) NULL ,
`koszyk_data` DATETIME NOT NULL DEFAULT NOW() ,
`koszyk_zarobek` DECIMAL NULL,
`produkt_id` INT NOT ,
PRIMARY KEY (`koszyk_id`),
CONSTRAINT `produkt_id`
FOREIGN KEY (`produkt_id` )
REFERENCES `rowerowy`.`produkty` (`produkt_id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION
);
CREATE TABLE `rowerowy`.`produkty` (
`produkt_id` INT NOT NULL AUTO_INCREMENT ,
`produkt_producent` VARCHAR(45) NULL ,
`produkt_model` VARCHAR(45) NULL ,
`produkt_rok` INT(4) NULL ,
`produkt_cena_kupna` DECIMAL NULL ,
`produkt_cena` DECIMAL NULL ,
`produkt_zarobek` DECIMAL NULL ,
`produkt_ilosc` INT(10) NULL ,
`kategoria_id` INT NOT NULL ,
`dostawcy_id` INT NOT NULL ,
`koszyk_id` INT NOT NULL ,
PRIMARY KEY (`produkt_id`) ,
INDEX `koszyk_id` (`koszyk_id` ASC) ,
INDEX `dostawcy_id` (`dostawcy_id` ASC) ,
INDEX `kategoria_id` (`kategoria_id` ASC) ,
CONSTRAINT `koszyk_id`
FOREIGN KEY (`koszyk_id` )
REFERENCES `rowerowy`.`koszyk` (`koszyk_id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `dostawcy_id`
FOREIGN KEY (`dostawcy_id` )
REFERENCES `rowerowy`.`dostawcy` (`dostawcy_id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION,
CONSTRAINT `kategoria_id`
FOREIGN KEY (`kategoria_id` )
REFERENCES `rowerowy`.`kategoria` (`kategoria_id` )
ON DELETE NO ACTION
ON UPDATE NO ACTION
);