본문 바로가기
MySql

MySQL-두 테이블을 업데이트하는 삽입 트리거 이후?

by 베이스 공부 2021. 1. 16.
반응형

MySQL 트리거에 문제가 있습니다. I have 3 tables Customers, Products and Sales. In Sales I reference customer and product and I want to update the some counts on Products and Customers after a new sale is inserted. 다음 트리거는 두 테이블을 모두 업데이트하지 못합니다 ... 내가 뭘 잘못하고 있는지 파악할 수 없습니다.

DELIMITER $
CREATE TRIGGER OnSalesInsert AFTER INSERT ON Sales
FOR EACH ROW BEGIN
 UPDATE Products SET Products.sold=Products.sold+NEW.amount WHERE Products.id=NEW.product_id;
 UPDATE Customers SET Customers.amount=Customers.amount+NEW.amount WHERE Customers.id=NEW.customer_id;
END $
DELIMITER ;

 

해결 방법

 

이 시도:

DELIMITER $$

CREATE
    /*!50017 DEFINER = 'root'@'%' */
    TRIGGER `OnSalesInsert` BEFORE INSERT ON `Sales` 
    FOR EACH ROW BEGIN

       UPDATE Products 
       SET sold = sold + new.amount 
       WHERE id = new.product_id; 

       UPDATE Customers 
       SET amount = amount + new.amount 
       WHERE id = new.customer_id;
    END;
$$

DELIMITER ;

 

참조 페이지 https://stackoverflow.com/questions/14025301

 

 

반응형

댓글