Thread Insert Into... On Duplicate Key Update...
(20 answers)
Opened by rosti at 2012-05-25 20:39 2012-05-25T21:25:27 rosti doku? ich schrieb ja schon oben, dass last_insert_id nur etwas sinnvolles liefert, wenn ein insert stattgefunden hat. andernfalls liefert es einfach die insert id vom letzten "echten" insert. http://dev.mysql.com/doc/refman/5.1/en/insert-on-d... hier ein test. zuerst ein insert in eine andere tabelle bar, danach ein insert in foo, welches ein update macht: Code: (dl
)
1 mysql> select * from foo; last_insert_id liefert 3. man muss also den dokumentierten workaround bemühen: Code: (dl
)
1 mysql> insert into foo (name) VALUES ("foo") on duplicate key update name=name, id=LAST_INSERT_ID(id); wie gesagt, es ist nicht trivial, und wenn du es benutzt, solltest du dir über sowas im klaren sein. Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wie frage ich & perlintro brian's Leitfaden für jedes Perl-Problem |