Insert statement ID zurückgebenlassen
am 12.10.2006 19:30:55 von Jan Meier
Hallo,
ich habe eine Tabelle da befindet sich eine Spalte die vom typ
"int not null auto_increment" ist.
Nun mache ich ein Insert-Statement:
INSERT INTO blah VALUES (0,...);
Gibt es eine Möglichkeit die dadurch automatisch generierte ID sich
zurückgeben zu lassen? Zurzeit mache ich das mit einer Zweiten query:
SELECT id FROM blah WHERE ...
Ist dies die beste Möglichkeit oder gibt es da noch etwas besseres?
Gruß
Jan
Re: Insert statement ID zurückgebenlassen
am 12.10.2006 20:21:11 von Axel Schwenke
Jan Meier wrote:
>
> ich habe eine Tabelle da befindet sich eine Spalte die vom typ
> "int not null auto_increment" ist.
>
> Nun mache ich ein Insert-Statement:
>
> INSERT INTO blah VALUES (0,...);
Mööp. Wenn du einen Wert per AUTO_INCREMENT generieren willst, übergib
den Wert NULL oder laß die Spalte in der Spaltenliste gleich weg.
Es ist allgemein empfohlen, INSERTs mit Spaltenliste zu schreiben:
INSERT INTO () VALUES ()
Dadurch vermeidest du unbemerkte Fehler, wenn sich deine Tabellen mal
ändern und du vergißt die INSERTs anzupassen.
> Gibt es eine Möglichkeit die dadurch automatisch generierte ID sich
> zurückgeben zu lassen?
LAST_INSERT_ID()
http://dev.mysql.com/doc/refman/5.0/en/getting-unique-id.htm l
XL
Re: Insert statement ID zurückgebenlassen
am 12.10.2006 20:29:24 von ascii158
Jan Meier schrieb:
> Gibt es eine Möglichkeit die dadurch automatisch generierte ID sich
> zurückgeben zu lassen? Zurzeit mache ich das mit einer Zweiten query:
>
> SELECT id FROM blah WHERE ...
>
> Ist dies die beste Möglichkeit oder gibt es da noch etwas besseres?
Ja.
GrüÃe,
--
Philipp Tölke
PGP: 0x96A1FE7A
Re: Insert statement ID zurückgebenlassen
am 13.10.2006 01:31:46 von Jan Meier
Axel Schwenke wrote:
> Jan Meier wrote:
>>
>> ich habe eine Tabelle da befindet sich eine Spalte die vom typ
>> "int not null auto_increment" ist.
>>
>> Nun mache ich ein Insert-Statement:
>>
>> INSERT INTO blah VALUES (0,...);
>
> Mööp. Wenn du einen Wert per AUTO_INCREMENT generieren willst, übergib
> den Wert NULL oder laß die Spalte in der Spaltenliste gleich weg.
>
> Es ist allgemein empfohlen, INSERTs mit Spaltenliste zu schreiben:
> INSERT INTO () VALUES ()
Okay, werde ich in Zukunft so machen, danke für den Tip.
> Dadurch vermeidest du unbemerkte Fehler, wenn sich deine Tabellen mal
> ändern und du vergißt die INSERTs anzupassen.
>
>> Gibt es eine Möglichkeit die dadurch automatisch generierte ID sich
>> zurückgeben zu lassen?
>
> LAST_INSERT_ID()
> http://dev.mysql.com/doc/refman/5.0/en/getting-unique-id.htm l
Ja danke, das hat geholfen. :)
Gruß
Jan