Autor Zpráva
davef6
Profil
Jak mohu zjistit poslední vložený záznam do db (ID)? Myslim jiný způsob než mysql_insert_id(); , protože ten nemohu použít
Joker
Profil
Pokud ID je auto_increment, tak poslední vložený je ten s nejvyšším ID:
SELECT * FROM tabulka ORDER BY id DESC LIMIT 1
davef6
Profil
potřeboval bych ukládat obrázky a aby obrázek se jmenoval stejně jako id, ale co když třeba poslední záznam smažu, pak se bude obrázek jmenovat třeba 15, jelikož poslední záznam bude 14, ale jelikož je již 15 jednou smazaná, v db se vygeneruje id s číslem 16...........takže obrázek bude 15 a id 16, což nechci, dá se to nějak řešit?
blaaablaaa
Profil
SELECT `AUTO_INCREMENT` FROM `information_schema`.`TABLES` WHERE `TABLE_NAME` = 'nazev_tabulky' AND `TABLE_SCHEMA` = 'nazev_databaze'
davef6
Profil
funguje, díky
TomášK
Profil
Je na to i funkce v SQL:
SELECT LAST_INSERT_ID()


viz dokumentace:
http://dev.mysql.com/doc/refman/5.0/en/getting-unique-id.html
AM_
Profil
Zamkni si na to ale příslušnou tabulku (LOCK TABLES tabulka WRITE) a na konci UNLOCK TABLES, kdyby ten skript spustili dva uživatelé zároveň, nadělá to paseku:
uživatel 1: skript ukládá řádek databáze
předání řízení uživateli 2
uživatel 2: skript ukládá řádek databáze
předání řízení uživateli 1
uživatel 1: načte poslední vložené ID, které ale vložil uživatel 2
předání řízení uživateli 2
uživatel 2: načte znovu stejné ID
Mastodont
Profil
AM_
Jak praví manuál:
For LAST_INSERT_ID(), the most recently generated ID is maintained in the server on a per-connection basis. It is not changed by another client.

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: