Primärschlüssel
Olly
- datenbank
Hallo,
ich habe eine Tabelle in einer mySQL-DB mit einem Primärschlüssel "auto_increment" angelegt. Gibt es eine Möglichkeit den nächsten automatisch zu erstellenden Primärschlüssel abzufragen, ohne daß dieser erstellt wurde?
Thx
Olly
Hi,
ich habe eine Tabelle in einer mySQL-DB mit einem Primärschlüssel "auto_increment" angelegt. Gibt es eine Möglichkeit den nächsten automatisch zu erstellenden Primärschlüssel abzufragen, ohne daß dieser erstellt wurde?
Du kennst die Funktion MAX()? Sie liefert dir den Maximalwert eines Feldes (integer zB.)
Wenn Du sie auf den Primärschlüssel anwendest bekommst Du den aktuell höchsten Wert ... plus eins ist der Nächste (Angenommen Du hast incementierst um 1, man kann ja um jede beliebige Zahl incrementieren)
schönen Tag noch
ciao
romy
Halihallo Olly
ich habe eine Tabelle in einer mySQL-DB mit einem Primärschlüssel "auto_increment" angelegt. Gibt es eine Möglichkeit den nächsten automatisch zu erstellenden Primärschlüssel abzufragen, ohne daß dieser erstellt wurde?
Die Lösung von romy ist richtig, fachlich noch etwas korrekter wäre:
SHOW TABLE STATUS FROM db_name LIKE "tbl_name"
und dann das Feld: Auto_increment
diese Abfrage greift direkt auf den Table-Header zu und somit auf die Quelle per se,
wo diese Information gespeichert wird. Mit anderen Worten: Die Datenbank selber wird nie
ein SELECT MAX(id)+1 ausführen, um den nächsten AutoIndex zu finden, sie wird die
Information aus dem TableHeader holen, wie es SHOW TABLE STATUS macht.
Viele Grüsse
Philipp
Die Lösung von romy ist richtig, fachlich noch etwas korrekter wäre:
SHOW TABLE STATUS FROM db_name LIKE "tbl_name"
und dann das Feld: Auto_increment
diese Abfrage greift direkt auf den Table-Header zu und somit auf die Quelle per se,
wo diese Information gespeichert wird. Mit anderen Worten: Die Datenbank selber wird nie
ein SELECT MAX(id)+1 ausführen, um den nächsten AutoIndex zu finden, sie wird die
Information aus dem TableHeader holen, wie es SHOW TABLE STATUS macht.
Hi Philipp,
thx, das hab ich gesucht!!
Grüße
Olly
So, jetzt hab ich auch den PHP-Code, der den nächsten Primärschlüssel ausspuckt:-)
$result = mysql_query("SHOW TABLE STATUS FROM $strDBName LIKE '$strTableName'");
$row = mysql_fetch_assoc($result);
echo $row['Auto_increment'];