Gå til innhold

MySQL og auto_increment-verdi


Anbefalte innlegg

Skrevet

Er det noen her som vet hvordan man kan hente ut siste genererte auto_increment-verdi for en tabell?

 

Har søkt en del rundt og lest i MySQL-manualen, men finner ingen metoder for å hente den verdien, så jeg spør her i håp om at noen vet hvordan man gjør dette. :)

Videoannonse
Annonse
Skrevet

SELECT COUNT(id) AS totalt FROM tabellnavn;

 

denne vil telle antall rader i tabellen. dersom man

da har slettet en eller flere rader vil denne gi feil resultat.

 

dersom man nettopp har lagt til noe i en tabell, kan

du bruke funksjonen mysql_insert_id(). men BARE

dersom du var den siste som la til noe.

 

en sikrere måte er å gjøre dette:

<?
 $tabell = mysql_query("INSERT ....");
 echo mysql_insert_id($tabell);
?>

Skrevet

Er det mulig å endre auto_increment verdien i en tabell også? Hadde vært veldig grei til å kunne sette den om igjen for å unngå store "hopp" i id-feltene etter slettinger.

Skrevet
denne vil telle antall rader i tabellen. dersom man

da har slettet en eller flere rader vil denne gi feil resultat.

 

dersom man nettopp har lagt til noe i en tabell, kan

du bruke funksjonen mysql_insert_id(). men BARE

dersom du var den siste som la til noe.

 

en sikrere måte er å gjøre dette:

<?
 $tabell = mysql_query("INSERT ....");
 echo mysql_insert_id($tabell);
?>

Er klar over at jeg kan kalle mysql_insert_id() for å sjekke resultatet etter siste INSERT-spørring, men poenget er at jeg gjerne vil hente ut denne verdien uten å sette inn en rad i tabellen først.

 

@jorgis:

ALTER TABLE `tabell` AUTO_INCREMENT = 'tall'

Skrevet

Om man går ut i fra at den siste id'en som ble satt inn vha auto_increment er den høyeste, kan man bruke "select max(id) from tabell".

Skrevet (endret)

SirIce hjalp meg med å finne en løsning som funker fint for meg. Den henter ikke siste genererte auto_increment-verdi, men den sier hva verdien bør være.

 

SELECT MAX(id)+1 FROM tabell

 

Edit: Oops, pastet feil kode.. :blush:

Endret av lokaltog
Skrevet
SirIce hjalp meg med å finne en løsning som funker fint for meg. Den henter ikke siste genererte auto_increment-verdi, men den sier hva verdien bør være.

 

SELECT COUNT(id)+1 AS totalt FROM tabell

Men denne vil ikke være riktig hvis noen eldre rader er blitt slettet.

 

Da er det bedre med: "SELECT id FROM tabellnavn ORDER BY id DESC LIMIT 1"

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...