2014-12-01 2 views
1

사용자가 임무를 완료 한 후에 전체 사용자 점수를 업데이트하는 트리거를 만들려고합니다. 나는 두 개의 다른 테이블 인 '임무'와 '사용자'를 가지고있다. 선교 테이블이 업데이트 된 후 나는 획득 한 점수를 users 테이블에 보내고 각 사용자에 대한 users.score를 업데이트하려고합니다. 미션 테이블에서 mid, scoreacquired, user_uid가 있고 사용자 테이블에서 uid, score가 있습니다. 그것은 나를 트리거를 만들 수 있습니다하지만 난 그것을 실행할 때,이 후 BEGIN 나에게 두 줄의 오류를 제공다른 테이블에 대한 MySQL 업데이트 후 트리거

DROP TRIGGER IF EXISTS updateScore; 
delimiter | 
CREATE TRIGGER updateScore 
AFTER UPDATE ON missions 
FOR EACH ROW 
BEGIN 
    UPDATE users SET score = score + missions.scoreacquired 
    WHERE users.uid = missions.user_uid; 
END; 
| 
delimiter; 

: 이것은 내가 지금까지있는 것입니다. 어떤 제안?

도와 주셔서 감사합니다.

답변

0

어딘가에도 new이 표시 될 것으로 예상됩니다. 이 같은 것을 :

DROP TRIGGER IF EXISTS updateScore; 
delimiter | 
CREATE TRIGGER updateScore 
AFTER UPDATE ON missions 
FOR EACH ROW 
BEGIN 
    UPDATE users 
     SET score = score + new.scoreacquired 
     WHERE users.uid = new.user_uid; 
END; 
| 
delimiter; 
+0

당신의 도움에 감사드립니다. 이제 라인 1의 구분 기호로 구문에서 불평하고 있습니다. 관련성이있는 경우 MySQL을 사용하고 있습니다. 다시 감사합니다. – yellowbedsheet

+0

원래 구문이 제대로 작동한다면이 방법도 사용할 수 있습니다. –

+0

그것은 효과가있다. 브라우저에서 복사하여 붙여 넣을 때 허용하지 않지만 수동으로 입력하면 작동합니다. 고맙습니다. – yellowbedsheet

관련 문제