mysql @@identity vs sql-server last_insert_id()

Bin ich richtig in dem Verständnis, dass mysql LAST_INSERT_ID () - Funktion nicht zurückgesetzt zwischen einfügen versucht (wie @@identity nicht in sql-server)..., dass, wenn die unmittelbar vorhergehende insert-operation fehl, LAST_INSERT_ID() zurückgegeben wird pk von dem, was der pk an, dass die Verbindung die Letzte insert, um alle Tabelle mit einem auto-increment Primärschlüssel. Und wenn ich richtig bin in diesem, bedeutet das nicht, scheinen, gerade über die verzögerte Verhalten für diese Funktion, dass man kommen könnte? Gibt es keine mysql-Funktion, die verhält sich ähnlich wie sql-server @@identity? Wird NULL zurückgeben, wenn dem unmittelbar vor insert-Versuch schafft keine neuen aufnehmen? Alternativ, wie wird man mit Sicherheit wissen, die den primären Schlüssel der letzten insert-operation?

  • gibt Ihnen die aktuellsten legen in JEDEM Bereich. Dies kann das Ergebnis von einem trigger, der nichts zu tun hat mit der insert-Anweisung, die Sie gerade lief. in SQL server, die Sie wollen in der Regel über die scope_identity () - Funktion.
  • thx, gute Aufklärung +1
  • Bitte beachten Sie, dass SQL Server @@identity und scope_identity(), wenn verwendet mit multiple-row-inserts auf einem server mit mehreren Prozessoren, können falsche Antworten! Mit der OPTION (MAXDOP 1) ist ein workaround.
InformationsquelleAutor codemonkey | 2010-02-05
Schreibe einen Kommentar