malte: funktion gesucht: auto_increment id wiedergeben

Hallo,

habe folgendes Problem (MySQL / Perl):

  • Einträge in eine Datenbank werden gemacht (ID wird per auto_increment vergeben)
  • Diese Einträge werden innerhalb einer for-Schleife gemacht, in der unter anderem auch noch Einträge anderer Daten in einer andere Table gemacht werden. Innerhalb dieser anderen Einträge soll schon die ID, die per auto_increment erschaffen wird, verfügbar sein.
    Vereinfacht:

for-Schleife () {

Eintrag der Daten in eine Table

ID entsteht durch auto_increment

Eintrag anderer Daten, unter anderem aber auch die ID, die oben erzeugt wurde in einer andere Table #
}

Theoretisch könnte man natürlich die ID abfragen, dann jedoch nur anhand einer "schwammigen" WHERE-Klausel.

+----+------------+
| ID | Name       |
+----+------------+
| 00 | Meier      |
| 01 | Meier      |
| 02 | Müller     |
| 03 | Meier      |
+----+------------+

In diesem Fall wäre es unmöglich zu "Meier" noch einen Eintrag in einer anderen Table zu machen, wenn man die ID nicht kennt :(

Gibt's da irgend ne allgemeine Lösung oder nen Ansatz?

Vielen Dank,
Malte

  1. Hallo Malte,

    wenn Du das DBI-Modul benutzt, bekommst Du den letzten auto_increment-Wert mit der Anweisung: $ID = $DBH->{'mysql_insertid'};

    Herzliche Grüße aus Weinsberg
    Helmut Weber

    --
    -------------------------------------------
    Mode ist eine Variable, Stil eine Konstante
  2. In diesem Fall wäre es unmöglich zu "Meier" noch einen Eintrag in einer anderen Table zu machen, wenn man die ID nicht kennt :(

    Gibt's da irgend ne allgemeine Lösung oder nen Ansatz?

    Ja, steht in der doku http://search.cpan.org/~simkin/Apache-LoggedAuthDBI-0.12/DBI.pm
    (last_insert_id)

    Struppi.