1

I want to update two table using trigger ,so I am running the below query:

CREATE TRIGGER project_document_trig AFTER INSERT ON object_metadata
FOR EACH ROW 
BEGIN
   IF NEW.group like 'group1' THEN
       UPDATE documents as document
           SET document.projects_count = document.projects_count + 1
           WHERE document.id = NEW.value;
       UPDATE projects as project
           SET project.documents_count = project.documents_count + 1
           WHERE project.id = NEW.resource_id ;
   END IF
END

I am getting syntax error

0

2 Answers 2

2

Use this code and check:

DELIMITER $$

CREATE TRIGGER project_document_trig 
AFTER INSERT ON object_metadata 
FOR EACH ROW 
BEGIN
   IF NEW.group like 'group1' THEN
       UPDATE documents as document
           SET document.projects_count = document.projects_count + 1
           WHERE document.id = NEW.value;
       UPDATE projects as project
           SET project.documents_count = project.documents_count + 1
           WHERE project.id = NEW.resource_id ;
   END IF;
END$$
DELIMITER ;

Alternatively You can use:

DELIMITER $$

CREATE TRIGGER project_document_trig 
AFTER INSERT ON object_metadata 
FOR EACH ROW 
BEGIN
   IF (EXISTS(SELECT 1 FROM object_metadata WHERE NEW.group like 'group1'))
   THEN
       UPDATE documents as document
           SET document.projects_count = document.projects_count + 1
           WHERE document.id = NEW.value;
       UPDATE projects as project
           SET project.documents_count = project.documents_count + 1
           WHERE project.id = NEW.resource_id ;
   END IF;
END$$
DELIMITER ;
Sign up to request clarification or add additional context in comments.

Comments

0

Just add the semi-colon after the END IF

END IF;

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.