increment wert aus mysql lesen
alex_
- perl
Hi leuts,
ich würde gerne wissen wie ich von einer bestimmten tabelle den aktuellen wert des auto_increment counters bestimmen kann.
ich habe was gelesen LAST_INSERT_ID() aber das geht nur im zusammenhang mit einem vorherigen insert, das will ich nicht.
dann hab ich was gelesen von $insertid = $dbh->{'mysql_insertid'};
aber wo ist da der tabellenbezug?
fakt ist ich habe in einer db mehrere tabellen und überall solch auto_increments und nun will ich von einer bestimmten tabelle den stand des counters, nur wie?
danke, alex
Hallo!
Ich hab ne Idee, aber die ist nicht so elegant. Ausserdem kenne ich mich mit Perl nicht aus und kann die blos sagen, was du zu tun hättest, und nicht wie:
Als erstes könnte man in die Tabelle was reinschreiben und davon die ID auslesen. Hinterher löscht man den Eintrag wieder. Die aktuelle ID ist also ID+1.
Nico
Hallo!
Ich hab ne Idee, aber die ist nicht so elegant. Ausserdem kenne ich mich mit Perl nicht aus und kann die blos sagen, was du zu tun hättest, und nicht wie:
Als erstes könnte man in die Tabelle was reinschreiben und davon die ID auslesen. Hinterher löscht man den Eintrag wieder. Die aktuelle ID ist also ID+1.Nico
nein das will ich nicht, weil ich dadurch unnötig ids verschwende...
Moin,
wie wäre ein
SELECT id FROM tabelle ORDER BY id DESC;?
Dann ist die höchste ID der erste Wert im Resulset.
SteBu
Hi,
wie wäre ein
SELECT id FROM tabelle ORDER BY id DESC;?
Wenn schon, dann noch mit LIMIT dazu - sonst werden unnötigerweise alle IDs übertragen, obwohl nur eine benutzt wird.
Oder gleich nur die MAXimale id ausgeben lassen:
select max(id) from tabelle;
cu,
Andreas
Hi,
wie wäre ein
SELECT id FROM tabelle ORDER BY id DESC;?Wenn schon, dann noch mit LIMIT dazu - sonst werden unnötigerweise alle IDs übertragen, obwohl nur eine benutzt wird.
Oder gleich nur die MAXimale id ausgeben lassen:
select max(id) from tabelle;
cu,
Andreas
nein, alles falsch.
die höchste id muss nicht der aktuelle counter sein, falls jemand nämlich was gelöscht hat...
hi,
wie wäre ein
SELECT id FROM tabelle ORDER BY id DESC;?
Dann ist die höchste ID der erste Wert im Resulset.
und was hat die aktuell höchste ID mit dem stand des auto_increment-"counters" zu tun?
gruß,
wahsaga
Moin,
und was hat die aktuell höchste ID mit dem stand des auto_increment-"counters" zu tun?
OK, ans löschen von Datensätzen habe ich in dem Moment nicht gedacht ;).
Eine Notlösung für das Problem wäre, nach jedem "normalem" Insert die last_insert_id in einer zusätzlichen Tabelle zu notieren.
SteBu
am elegantesten scheint mir momentan:
show table status
und dann einfach die Auto_increment der richtigen tabelle zu ziehen.
alex