Mike: MySQL-Fehler 1062, Doppler-ID finden

Beitrag lesen

Hallo,

id|wert
1|a
2|b
3|c
4|d

mysql> insert into tabelle (wert) values ("a") on duplicate key update id=last_insert_id(id);

mysql> select last_insert_id(), row_count();
+------------------+-------------+
| last_insert_id() | row_count() |
+------------------+-------------+
|                1 |          -1 |
+------------------+-------------+

das scheint ähnlich wie Hottis Lösung ohne die Extraspalte. Leider verstehe ich den Hintergrund nicht, das Manual ist mir da auch ein wenig zu Fachchinesisch.

Für mich sieht das so aus:
mysql> insert into tabelle (wert) values ("a") on duplicate key update id=last_insert_id(id);

Füge "a" ein in Tabelle, wenn Doppler dann verändere den Key(also ID), was aber ja kontraproduktiv wäre und somit nicht sein kann. Also was genau macht "on duplicate key update id=last_insert_id(id)"? Für Dummys ;-)

Gruss
Mike