Autor Zpráva
Tonny
Profil *
Ahoj,
potřebuji nějak zjistit, jaké bude příští id přiřazené dalšímu záznamu.
U id mám nastavený auto_increment.
Doteď to dělám tak, že z databáze načtu max(id) +1, jenže pokud poslední zápis smažu, tak se nesmaže záznam o tom, že tam bylo nějaké id, a to další se přidá až "za něj", což mi narušuje mou propracovanou strategii jak na to :)

Nevíte prosím někdo co s tím?
Předem dík
Tonny
Keeehi
Profil
mysql_insert_id() + 1 v PHP
LAST_INSERT_ID() + 1 v MySQL
DarkMeni
Profil
Mám podobný problém, toto mi to ale zjistí až po vložení záznamu, jde to nějak zjistit před vložením pro upravení všech hodnot pro vkládání do toho řádku?
Normálně bych taky použil MAX() ale když někdo smaže poslední záznam, a v MAX() vyjde třeba 10, po přičtení 1 pak 11 ale po vložení dalšího záznamu bude id nakonec 12 tak to bude špatný.
Jako zjistit na kolik je nastavený AUTO_INCREMENT v konkrétní tabulce bez toho aby jsem tam musel něco vložit.
djlj
Profil
Uf, vždyť se to dá lehce najít během pár sekund: http://www.google.com/search?client=ubuntu&channel=fs&q=select+auto_increment+mysql&ie=utf-8&oe=utf-8

Konkrétně třeba druhý odkaz: http://forums.mysql.com/read.php?21,87343,87343
DarkMeni
Profil
No vidíš to, a já pořád klikal na ten první, ale to řešení v tom druhým taky neni zrovna jednoduchý, a rychlejší bude podle mě vytvořit další sloupec pro ten účel na co to potřebuju (jen sem byl línej a chtěl to získávat podle přednastavené hodnoty v AUTO_INCREMENTU) než to pokaždý tahat z "SHOW TABLE STATUS WHERE `name` = 'tabulka'" -> `auto_increment`.
Alphard
Profil
V samostatném dotaze je to nebezpečné z pohledu paralelního přístup. Viz Jak získat auto_increment právě vkládaného řádku.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: