Portál AbcLinuxu, 19. července 2025 07:43
Řešení dotazu:
SELECT id+1 AS num FROM table WHERE num NOT IN (SELECT id FROM table) ORDER BY num LIMIT 1;Otázkou je, k čemu je to dobré. Obvykle se totiž jednou použité a smazané klíče již nerecyklují, protože bývají zdrojem problémů. Nejmenší bude asi ten, že vkládání bude zbytečně pomalé.
UPDATE Vydajka SET CisloFaktury= ( SELECT VolneCislo FROM ( SELECT CisloFaktury+1 AS VolneCislo FROM Vydajka WHERE CisloFaktury+1 NOT IN ( SELECT CisloFaktury FROM Vydajka ) ORDER BY CisloFaktury ASC LIMIT 1 ) AS Temporary ) WHERE ID=xxx;Ten úvodný select tam musí byť, lebo databáza nemôže vykonávať select nad upravovanou tabuľkou, takže vytvoríme záložnú. Veľmi pekne ďakujem za pomoc.
select cislo from tabulka prvni left join tabulka druha on druha.cislo = prvni.cislo + 1 where druha.cislo is null order by prvni.cislo desc
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.