Bonjour,

Prenons un cas simple. Une table users

userid | bonus
1 | 1
1 | 1
1 | 0
1 | 0
2 | 1
2 | 1
2 | 1
3 | 1

Je voulais savoir si il existe un moyen de bloquer l'insertion ou l'update (retourner une erreur 'insertion impossible' par example) lorsque la somme des bonus est égale à 2.
Dans notre cas INSERT INTO users (id, bonus) VALUES(1, 1) serait rejetée car la somme des bonus pour ce userId est déjà égale à 2.

J'ai regardé autour des TRIGGER mais je patauge sérieusement (je suis un petit peu newbie)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
CREATE TRIGGER check_bonus
BEFORE INSERT
   ON users FOR EACH ROW
BEGIN
IF ((SELECT count(*) FROM users WHERE userid = NEW.userid AND bonus=1) >= 2) THEN
    SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'insertion impossible';
END IF;  
END;
Merci de votre aide précieuse.