반응형
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
반응형
'MySql' 카테고리의 다른 글
MySQL : 데이터를 따라 데이터베이스 덤프 (0) | 2021.01.17 |
---|---|
MySQL 테이블의 한 열에서 중복 값 선택 (0) | 2021.01.17 |
MySQL MailChimp 또는 ConstantContact 등과 같은 메일 링리스트 관리자와 동등한 무료 / 오픈 소스가 있습니까? (0) | 2021.01.16 |
MySQL ---와 ----는 mysql에서 무엇을 의미합니까? (0) | 2021.01.16 |
MySQL 세부 선택 및 그룹화 기준 (0) | 2021.01.16 |
댓글