Bonjour,
excuses moi j'ai pas copié la bonne version du code c'est
Désolé
Code : Sélectionner tout - Visualiser dans une fenêtre à part SET New.CODE = (SELECT COALESCE(MAX(c.CODE) + 1,1)
Cordialement
Bonjour,
excuses moi j'ai pas copié la bonne version du code c'est
Désolé
Code : Sélectionner tout - Visualiser dans une fenêtre à part SET New.CODE = (SELECT COALESCE(MAX(c.CODE) + 1,1)
Cordialement
bonjour,
Mille excuses j'ai oublié le +1 dans le code (je l'avais mis dans mon trigger mais pas dans le code copié :
Désolé
Code : Sélectionner tout - Visualiser dans une fenêtre à part SET New.CODE = (SELECT COALESCE(MAX(c.CODE) + 1,1)
comme c'était sur la page 2 je crois que c'était pas passé, d'où la réponse en double
Décidément, je suis distrait
Bye
c'est normal tu dois rajouter le +1 derrière le max dans le trigger...
c'est vrai qu'ici c'est le plus simple...
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 DELIMITER // CREATE TRIGGER `basetestb`.`T_calc_code` BEFORE INSERT ON basetestb.codification FOR EACH ROW BEGIN SET New.CODE = (SELECT COALESCE(MAX(c.CODE)+1,1) FROM codification c WHERE c.NATURE = New.NATURE); END// DELIMITER ;
attention int(11) le 11 ne sert qu'a limiter le nombre de chiffres significatifs affichés...pas du tout le nombre d'octets ou de bits en mémoire...
c'est le type d'entier qui détermine la taille:
- tinyint 1 octet
- smallint 2 octets
- mediumint 3 octets
- int 4 octets
- bigint 8 octets
on peut préciser unsigned (ex: tinyint unsigned pour aller de 0 à 255 au lieu de -128 à 127 sans le unsigned) pour doubler le nombre de valeurs positives possibles
soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...
merci pour la solution j’avoue ne pas avoir fais attention hier qu'il manquais le +1 dans le trigger .
Pour le int ericd69 si ça peux te rassurer j'avais déjà un int(4) unsigned donc je n'ai pas recopier le int(11) vu que int est sur 4 octe
Merci pour tout a vous ça marche niquel maintenant et je peux m'attaquer a un autre problème
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager