Tach!
Ja, und die liefert MySQL, man muss sie nur abfragen. Dazu gibt es die MySQL-Funktion LAST_INSERT_ID(), aber meist fragt man sie über eine ähnlich benannte Funktion in der API ab (mysql(i)_insert_id() beispielsweise in PHP).
- Bin ich nicht sicher ob bei zeitgleichen Zugriffen diese LAST_INSERT_ID() dann auch noch tatsächlich passt.
Dann befrag das MySQL-Handbuch, was es zu dieser Funktion sagt. (Antwort: Es ist ein sessionindividueller Wert, der nicht von anderen Vorgängen beeinflusst wird. Es wäre sonst reichlich sinnlos, solch einen Wert anzubieten, wenn er diese gravierenden Nebenwirkungen hätte.)
Unabhängig davon trage ich aber mehrere Werte mit einer einzigen SQL-Anweisung ein, das bedeutet ich benötige alle dadurch erzeugten ID's.
Mehrere Werte sind kein Problem, ein Insert für mehrere Datensätze allerdings schon. Wenn du den Schlüssel brauchst, musst du darauf verzichten und nur einen Datensatz pro Insert abschicken.
Alternativ kannst du dich auch selbst um die Schlüsselerzeugung kümmern, dann hast du den Wert bereits vorligen, bevor du mit dem DBMS sprichst. Der Schlüssel muss nur eindeutig sein, weswegen sich simple Zahlen weniger gut eignen. GUID/UUID wäre etwas eindeutiges, aber auch deutlich länger als ein Integer-Wert.
dedlfix.