2017-11-13 1 views
0

id, a, b, c 필드가있는 sum_test라는 테이블이 있습니다. C에서 + b의 합계를 계산하지만 트리거에는 새로운 것이 필요한 트리거가 필요합니다. MySQL에서 어떻게 할 수 있습니까? 우리는 우리가 삽입되는 행에 열 c를 설정하고자하는 경우삽입 트리거에 대한 sum 트리거

CREATE TRIGGER `example` AFTER INSERT ON `sum_test` 
FOR EACH ROW BEGIN 
UPDATE sum_test 
SET c= (a+b) 
WHERE id = id 
END 

답변

2

, 우리는 BEFORE 삽입 트리거 이와 같이 수행 할 수 있습니다

DELIMITER $$ 

CREATE TRIGGER `sum_test_bi` BEFORE INSERT ON `sum_test` 
FOR EACH ROW 
BEGIN 
    SET NEW.c = NEW.a + NEW.b ; 
END$$ 

DELIMITER ; 

이해가 안 돼요 테이블 suma에 대한 참조 그 테이블이 무엇과 관련이 있나? id = id 조건은 테이블의 모든 행에 대해 TRUE로 계산됩니다. 여기서 id IS NOT NULL입니다.

+0

수정 됨, suma = sum_test, 죄송합니다. 스펜서 – Jiga

+0

및 사용자가 a 또는 b 열을 업데이트하면이 트리거를 다시 실행할 수 있습니까? – Jiga

+0

두 번째 트리거'sum_test_bu BEFORE UPDATE'를 정의해야합니다. 나머지 트리거 정의는 동일합니다. – spencer7593

관련 문제