2014-03-31 3 views
-1

이 트리거를 만들 때 테이블 recensione의 삽입이 더 이상 작동하지 않습니다.트리거 중단 삽입

CREATE DEFINER=`root`@`localhost` TRIGGER `premium` AFTER INSERT ON `recensione` FOR EACH ROW BEGIN 
DECLARE n INT; 
DECLARE g VARCHAR(255); 
SET n = (SELECT COUNT(*) FROM recensione WHERE id_autore=NEW.id_autore); 
SET g = (SELECT gruppo FROM utente WHERE id=NEW.id_autore); 
IF (n >= 20 AND g != `Amministratore`) THEN 
UPDATE utente AS u SET u.gruppo=`Premium` WHERE u.id=NEW.id_autore; 
END IF; 
END 

답변

1

현재 작업에 대한 상태 보고서를 보내 주셔서 감사합니다. 당신이 질문을하고 있는지 확신 할 수 없지만, 당신이 그렇다면,이 선은 틀린 것처럼 보입니다. 리터럴 값을 지역 변수 g의 내용을 비교하려면 같은

IF (n >= 20 AND g != `Amministratore`) THEN 
        ^   ^

그것은 보이지만, 리터럴 값은 작은 따옴표가 아니라 역 따옴표로 묶여 있습니다.

UPDATE utente AS u SET u.gruppo=`Premium` WHERE u.id=NEW.id_autore; 
           ^ ^

당신이 리터럴 값으로 열을 설정할처럼 보이는이 아닌 : 역 따옴표는

IF (n >= 20 AND g != 'Amministratore') THEN 
        ^   ^

같은이 라인에 간다 식별자 (테이블 이름, 열 이름 등) 사용 utente 테이블의 다른 열 값.

UPDATE utente AS u SET u.gruppo='Premium' WHERE u.id=NEW.id_autore; 
           ^ ^
+0

정말 대단합니다. 내 하찮은 영어 실력에 죄송하다는 말씀을 드리고 싶습니다! – user3482682