hotti: Insert mit Rückgabe der ID

Beitrag lesen

Hello,

http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html

INSERT INTO table (a,b,c) VALUES (1,2,3)

ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id), c=3;


>   
> Und was passiert mit Relationen bei diesem Statement?  
> Sind die dann anschließend kaputt?  
  
LAST\_INSERT\_ID() bezieht sich auf die Session mit der DB. Die Rückgabe dieser Funktion ist unabhängig davon, in welcher Relation ein auto\_increment-Wert erhöht wurde.  
  
Der Hack besteht nun darin, LAST\_INSERT\_ID(expr) zu verwenden, expr ist in meinem Fall das Feld 'id' und damit liefert LAST\_INSERT\_ID(id) die gewünschte id bei einem UPDATE.  
  
Es ist also unnötig, das Ermitteln der id über einen eigenen Code zu ziehen, wenn dies die Engine selbst tun kann.  
  
Schönen Sonntag,  
Hotti