2014-09-16 3 views
0

테이블의 가장 최근 항목 인 트리거에서 변수를 설정하려고합니다. 그러나 PHPMyAdmin은 라인 SET clicked_campaign_id =에 오류가 있음을 지적합니다. 나는 여기서 문제를 보지 못한다.트리거에서 변수를 설정할 수 없습니다.

CREATE TRIGGER tr_user_action_click 
AFTER INSERT ON users_click FOR EACH ROW 
BEGIN 
    DECLARE clicked_campaign_id int 

    SET clicked_campaign_id = 
    (SELECT campaignId 
    FROM users_click 
    WHERE id = (SELECT max(id) FROM users_click)); 

    Update onlineportal.`campaigns` 
    SET `clicks` = `clicks` + 1 
    WHERE id = clicked_campaign_id; 
END 

변수를 설정하는 다른 방법이 있습니까?

+0

추가','. 시도해보십시오 :'DECLARE clicked_campaign_id int;' – wchiquito

+0

이 작동하지 않습니다.'; '와 함께 그 행에 오류가 있습니다. – Sauron

+0

phpMyAdmin에서'DELIMITER '를 올바르게 설정해야합니다. – wchiquito

답변

1

당신은 그림과 같이, phpMyAdmin을에 구분 기호를 설정해야합니다

enter image description here

을 그리고, 트리거 생성 :

CREATE TRIGGER `tr_user_action_click` AFTER INSERT ON `users_click` 
FOR EACH ROW 
BEGIN 
    DECLARE `clicked_campaign_id` INT; 

    SET `clicked_campaign_id` = 
    (SELECT `campaignId` 
    FROM `users_click` 
    WHERE `id` = (SELECT max(`id`) FROM `users_click`)); 

    UPDATE `onlineportal`.`campaigns` 
    SET `clicks` = `clicks` + 1 
    WHERE `id` = `clicked_campaign_id`; 
END// 
+0

테스트를 거쳤으며 감사합니다. – Sauron

관련 문제