Bonjour,

On fait un exercice en classe et ça me prend la tête car la même syntaxe fonctionne chez tout le monde, sauf chez moi

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CREATE DEFINER=`root`@`localhost` TRIGGER before_insert_client BEFORE INSERT
ON agenda_en_ligne.client FOR EACH ROW
BEGIN
 
    IF NEW.genre IS NOT NULL   
    AND NEW.genre != '1'       
    AND NEW.genre != '2'  
    AND NEW.genre != '3'
      THEN
        SET NEW.genre = '1';
    END IF;
 
set new.date_creation=now();
 
END
Donc théoriquement, si le NEW.genre est différent de 1, 2 ou 3, il le set à 1.
Sauf que j'ai ce message d'erreur systématiquement:
Array ( [0] => HY000 [1] => 1366 [2] => Incorrect integer value: 'j' for column 'genre' at row 1 )
Si vous pouviez m'aider.

Merci

A savoir qu'on ne voit pas le delimiter dans ce code. Voici le code que j'ai entré lorsque j'ai créé le trigger
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
DELIMITER |
CREATE TRIGGER before_insert_client BEFORE INSERT
ON agenda_en_ligne.client FOR EACH ROW
BEGIN
 
    IF NEW.genre IS NOT NULL   
    AND NEW.genre != '1'       
    AND NEW.genre != '2'  
    AND NEW.genre != '3'
      THEN
        SET NEW.genre = '1';
    END IF;
 
set new.date_creation=now();
 
END |
 
DELIMITER ;