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)
Merci de votre aide précieuse.
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;
Partager