MySQL, ab bestimmter Nummer anfangen und setzen

Gray

Erfahrenes Mitglied
Ich habe eine Datenbank mit Kundennummern, nun will ich das es mir ab der Kundennummer 50000 die nächste freie Kundennummer ausgibt.
also wenn ich Kundennummern habe z.b.
-50001
-50002
-50004
-50005

Und da soll es mir also die Kundennummer 50003 ausgeben
 
Hallo, warum willst Du das tun? Ich hoffe nicht, um selbst den Index dann zu erhöhen.

Du kannst es so tun: select max(spalte) +1 from Tabelle

Falls damit zu rechnen ist, dass andere AUCH diese Tabelle beschreiben, ist dies eine sehr unsichere Methode. Dann hilft Dir nur eine Transaktion und ein SELECT FOR UPDATE weiter.

Chris
 
Versuchs mal damit, hab ich mir gebastelt. Gehe mal davon aus, dass du Einträge löschst und diesen Platz dann wieder beschreiben möchtest:

PHP:
  <?php
  // Search for the next free Supplier ID
  @mysql_select_db($datab_ibm,$verbindung_ibm) or die(mysql_error());
  $query = "SELECT Kdn FROM spalte ORDER BY Kdn ASC"; 
  $result = mysql_query($query,$verbindung) or die ("Error in query: $query. " . mysql_error()); 
  $temp = 1; 
  while (list($erg) = mysql_fetch_row($result))
  {
    if (substr($erg, 5 - strlen($temp), strlen($temp)) != $temp)
    {
      Switch (strlen($temp))
      {
        case "1" : $substring = "0000";
                   break;
        case "2" : $substring = "000";
                   break;
        case "3" : $substring = "00";
                   break;
        case "4" : $substring = "0";
                   break;
        case "5" : $substring = "";
                   break;
      } 
      $frei = $substring . $temp;
      break; 
    }
    else
    {
      $temp++;
    }
  }
  ?>

ACHTUNG: Bei dieser Lösung ist ein "Dummy" in der DB notwendig, damit auch einträge gemacht werden können, wenn alle Zwischeneinträge belegt sind. In deinem Fall also Kdn: 99999
 
Zurück