Je n'ai pas testé le code mais ça doit être quelque chose dans ce gout là.
En gros créer un trigger qui compte le nombre d'enregistrements identiques et interromps le commit si nécessaire.
(la divison par zéro c'est pour MySQL, avec un autre SGBD tu peut lever une erreur proprement)
CREATE TRIGGER check_limit_4
BEFORE INSERT ON my_table
FOR EACH ROW BEGIN
DECLARE sim_count AS INT;
SELECT count(*)
INTO sim_count
FROM my_table
WHERE my_field = :new.my_field
IF sim_count > 3 THEN 1 /0;
END
Mais bon si tu maîtrise totalement la partie applicative, je serait toi je ne m'embêterait pas avec du SQL à moins que ce soit critique.
[^] # Re: juste une précision sur ce que je souhaite en fait
Posté par Jean B . En réponse au message Comme faire une contrainte dependant de requetes sur la base. Évalué à 3.
En gros créer un trigger qui compte le nombre d'enregistrements identiques et interromps le commit si nécessaire.
(la divison par zéro c'est pour MySQL, avec un autre SGBD tu peut lever une erreur proprement)
CREATE TRIGGER check_limit_4
BEFORE INSERT ON my_table
FOR EACH ROW BEGIN
DECLARE sim_count AS INT;
SELECT count(*)
INTO sim_count
FROM my_table
WHERE my_field = :new.my_field
IF sim_count > 3 THEN 1 /0;
END
Mais bon si tu maîtrise totalement la partie applicative, je serait toi je ne m'embêterait pas avec du SQL à moins que ce soit critique.