0

I'm trying to create a trigger where I set a colunm to 0 if another column is set to 0 and 1 if it's set higher than 0. This is what I wrote

CREATE TRIGGER livre_disponible BEFORE INSERT ON livres
FOR EACH ROW
BEGIN
    IF NEW.nb_exemplaires=0 THEN
            SET NEW.disponible=0;
    ELSEIF NEW.nb_exemplaires>=1 THEN
            SET NEW.disponible=1;
    END IF
END

The error is said to be on line 5 which is the first "SET".

I this the correct syntax to do it?

1 Answer 1

1

I didn't find anything wrong with your statement, you need perhaps DELIMITERs

DELIMITER $$
CREATE
    TRIGGER `livre_disponible` BEFORE INSERT ON `livres` 
    FOR EACH ROW 
   BEGIN
        IF NEW.nb_exemplaires=0 THEN
            SET NEW.disponible=0;
        ELSEIF NEW.nb_exemplaires>=1 THEN
            SET NEW.disponible=1;
        END IF;
    END;
$$

DELIMITER ;

Updated : you missed also a ';' ==> END IF; END;

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.