SQL: Datensatz anlegen und Primärschlüssel zurückgeben
Maresa P.
- datenbank
Hallo,
ich möchte mittels PHP einen SQL Query an meine mySQL Datenbank seden, welcher einen neuen Datensatz in eine Tabelle schreibt.
Der Primärschlüssel der Tabelle ist ein Auto Wert (auto increment).
Diesen Primärschlüssel des neu hinzugefügten Datensatzes benötige ich weiter unten in meinem Script. Ist es mit nur einem Query möglich, einen neuen Datensatz in die Tabelle zu schreiben und gleichzeitig dessen ID zurückzobekommen? Wenn ja, wie muss der Query lauten?
Vielen Dank
Maresa
Hallo Maresa,
mit welcher Skriptsprache arbeitest du? In PHP gibt es eine Funktion:
int mysql_insert_id ( [resource Verbindungs-Kennung])
mysql_insert_id() liefert die ID, die bei der letzten INSERT-Operation für ein Feld vom Typ AUTO_INCREMENT vergeben wurde. Wenn die Verbindungs-Kennung nicht angegeben wird, wird die zuletzt geöffnete Verbindung angenommen.
mysql_insert_id() liefert 0, wenn die vorhergehende Abfrage keinen AUTO_INCREMENT Wert erzeugt hat. Falls Sie den Wert zur späteren Verwendung speichern möchten, stellen Sie sicher, dass Sie mysql_insert_id() direkt nach der Abfrage aufrufen, die einen Wert erzeugt hat.
Anmerkung: Der Wert der MySQL SQL Funktion LAST_INSERT_ID() liefert immer den zuletzt erzeugten AUTO_INCREMENT Wert. Dieser wird zwischen Abfragen nicht zurückgesetzt.
Schönen Gruß aus München
die knappschaft