[RESOLU] Récupérer le plus petit numéro disponible lors d'un INSERT

Petit nouveau ! | 6 Messages

07 févr. 2019, 18:55

Bonjour,
je développe une application qui lors de la création du client doit attribuer un numéro de tiroir non utilisé, pour y ranger les clés confiées, et qui libère le tiroir, quand le client récupère sa clé.
Mais je n'arrive pas a réaliser la requête pour le moment j'ai
SELECT MIN(numTiroir) FROM tiroir WHERE numTiroir IS NULL mais cela revoit NULL que faire?

Mammouth du PHP | 1572 Messages

08 févr. 2019, 09:15

Hello,

moi j'ajouterai une jointure sur la table elle même avec en condition que le numtitoir doit être égale à +1 du sien.
ensuite tu cherche un min sur ceux qui ont une jointure nulle
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone de rubik's cube
Ingénieur Industriel Chimie / Biochimie

Petit nouveau ! | 6 Messages

08 févr. 2019, 10:25

j'ai du coup une requête comme ci dessous mais si ma table est comme ça (2,3,4,6,7,8,9) je veux le 1 mais cela donne le 5
SELECT MIN(t1.numTiroir) + 1 AS numTiroir FROM tiroir t1 LEFT JOIN tiroir t2
ON (t2.numTiroir = t1.numTiroir+1) WHERE t2.numTiroir IS NULL

Petit nouveau ! | 6 Messages

08 févr. 2019, 10:44

Au final j'ai procédé autrement j'ai rajouté une colonne libre BOOL (1 pour remplit 0 pour vide) avec cette requête
SELECT MIN(numTiroir) AS numTiroir FROM tiroir WHERE libre=0 comme ça je change juste la colonne libre plus besoin de ajouter ou supprimer un tiroir a chaque fois Merci pour tes conseils