Re: SQL pour trouver le premier libre?
Re (dernier post, promis)
> Mieux, non :-)
Non c'est mieux *après* le café...
test2=> select a+1 as id_disponible from nombres except select a from
nombres order by id_disponible limit 1;
id_disponible
---------------
4
(1 ligne)
C'est à dire que la condition WHERE ne sert plus à grand chose (dans la
mesure où a>0 tout le temps) dans mon exemple !
test2=> explain select a+1 as id_disponible from nombres except select a
from nombres order by id_disponible limit 1;
QUERY PLAN
------------------------------------------------------------------------------------------
Limit (cost=333.73..333.78 rows=1 width=4)
-> SetOp Except (cost=333.73..353.13 rows=388 width=4)
-> Sort (cost=333.73..343.43 rows=3880 width=4)
Sort Key: id_disponible
-> Append (cost=0.00..102.45 rows=3880 width=4)
-> Subquery Scan "*SELECT* 1" (cost=0.00..53.65
rows=1940 width=4)
-> Seq Scan on nombres (cost=0.00..34.25
rows=1940 width=4)
-> Subquery Scan "*SELECT* 2" (cost=0.00..48.80
rows=1940 width=4)
-> Seq Scan on nombres (cost=0.00..29.40
rows=1940 width=4)
(9 lignes)
Home |
Main Index |
Thread Index