![]() |
AW: Autoincwert zurück bekommen
Wie ich gerade lesen konnte ist Last_Insert_ID verbindungsbezogen. Das bedeutet, selbst wenn andere gleichzeitig Datensätze anlegen, Last_Insert_ID gibt für die aktuelle Sitzung/Verbindung die korrekte letzte ID zurück. Aufwändig, aber wenn returning nicht unterstützt wird (Oracle muss halt MySQL irgendwie kleiner halten als das Hauptprodukt) die einzige Möglichkeit.
Sherlock |
AW: Autoincwert zurück bekommen
Kein Problem hier eine Demo für der MSSQL! (nicht MYSQL):
Code:
Nun der Insert:
CREATE TABLE [dbo].[Demo](
[Id] [int] IDENTITY(1,1) NOT NULL, [Text] [varchar](max) NOT NULL, CONSTRAINT [PK_Demo] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
Code:
Liefert als Resultset:
INSERT INTO [dbo].[Demo] ([Text])
output inserted.Id, inserted.Text VALUES ('Hund'), ('Katze'), ('Maus') GO
Code:
Sprich, dass was ich einfüge dafür habe ich auch die exakten Keys. Also nicht das was vielleicht noch im Hintergrund abläuft durch Trigger oder parallel laufenden Prozessen.
1 Hund
2 Katze 3 Maus |
AW: Autoincwert zurück bekommen
Es geht aber um MySQL!
|
AW: Autoincwert zurück bekommen
Zitat:
|
AW: Autoincwert zurück bekommen
Zitat:
Wow! Das kannte ich noch nicht. Ich hole immer mit @@Identity die ID mit einer separaten Query nach dem Insert. Aber wie kann das Resultset mit der Output Query geholt werden? Ist es Qry.FieldByName('Inserted.Id') oder so? Und wie ist die Performance verglichen mit einem "normalen" Insert? |
AW: Autoincwert zurück bekommen
Zitat:
|
AW: Autoincwert zurück bekommen
Kennt MyDac
Delphi-Quellcode:
nicht?
Query.LastInsertId
Edit: Bei MyDAC ist es Query.InsertId .. LastInsertId ist von UniDac |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz