ich benötige die ID/key (autoincrementwert) einer Tabelle, wenn doppelt vorhanden.
id|wert
1|a
2|b
3|c
4|d
Die wert-spalte ist unique, was natürlich im Konfliktfall somit keine id liefert, da nicht eingetragen. Dieser Fehler lässt sich ja noch abfangen mit: if(mysql_errno() == 1062))...
Doch damit erhalte ich immer noch nicht die betreffende id.
Somit meine Frage: Komme ich an die ID des Dopplers
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 |
+------------------+-------------+
mysql> insert into tabelle (wert) values ("x") on duplicate key update id=last_insert_id(id);
mysql> select last_insert_id(), row_count();
+------------------+-------------+
| last_insert_id() | row_count() |
+------------------+-------------+
| 5 | 1 |
+------------------+-------------+