Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi id vom letzten insert (https://www.delphipraxis.net/127627-id-vom-letzten-insert.html)

Sherlock 16. Jan 2009 11:18

Re: id vom letzten insert
 
Bei Oracle gibt es "Returning" http://de.wikibooks.org/wiki/Oracle:_Sequenzen

Aber es geht hier ja nicht um Oracle.

Sherlock

jfheins 16. Jan 2009 11:23

Re: id vom letzten insert
 
Zitat:

Zitat von QuickAndDirty
Sicher das das geht?

...

Im MySQL-Manual heißt es dazu:
Zitat:

For LAST_INSERT_ID(), the most recently generated ID is maintained in the server on a per-connection basis. It is not changed by another client. It is not even changed if you update another AUTO_INCREMENT column with a non-magic value (that is, a value that is not NULL and not 0). Using LAST_INSERT_ID() and AUTO_INCREMENT columns simultaneously from multiple clients is perfectly valid. Each client will receive the last inserted ID for the last statement that client executed.
;)

Delphi-Phil 16. Jan 2009 11:44

Re: id vom letzten insert
 
hießt das jetzt für mich, es ist möglich die letzte id zu bekommen oder nicht??? So das ich auch wirlich die id von dem eingefügten datensatz bekomme und nicht wenn dazwischen ein anderer user war!

Sharky 16. Jan 2009 11:45

Re: id vom letzten insert
 
Hast Du denn gelesen was die anderen und die Hilfe von mySQL zu dem Thema sagen?

jfheins 16. Jan 2009 11:47

Re: id vom letzten insert
 
Anscheinend nicht :roll:

Also nochmal mit Hervorhebung:
Zitat:

For LAST_INSERT_ID(), the most recently generated ID is maintained in the server on a per-connection basis. It is not changed by another client. It is not even changed if you update another AUTO_INCREMENT column with a non-magic value (that is, a value that is not NULL and not 0). Using LAST_INSERT_ID() and AUTO_INCREMENT columns simultaneously from multiple clients is perfectly valid. Each client will receive the last inserted ID for the last statement that client executed.

Luckie 16. Jan 2009 11:49

Re: id vom letzten insert
 
Was will ich mit der eigentlich anfangen? Die ist doch nur für das DBMs interessant, um einen Datrensatz eindeutig identifizieren zu können. Für den Entwickler ist oder sollte sie ohne Bedeutung sein. Wenn ich Datensätze lösche und anschliessend die Datenbank komprimiere (also das die Datensätze tatsächlich gesclöscht werden) und dann der Datenbank sage, sie soll die Index neu vergeben (warum auch immer) sind meine Referenzen per ID kaputt.

Eine ID dient nur der Datenbank für die interne Verwaltung der Datensätze.

jfheins 16. Jan 2009 11:57

Re: id vom letzten insert
 
Wenn ich aber z.B. eine 1:n Beziehung modelliere, dann nehme ich eine Tabelle für die einen Datensätzte und eine andere für die anderen Daten und in der einen Tabelle gibt es dann eine Spalte für den Index der anderen.

z.B. Buch>Seiten - da hat dann jede Seite die ID des Buches, zu dem es gehört.

Diese ID's dann neu durchzunummerieren ohne die Seiten upzudaten gehört verboten ;)

Luckie 16. Jan 2009 11:58

Re: id vom letzten insert
 
Gut, aber auch da interessiert dem Entwickler nicht der konkrete Wert der IDs.

Delphi-Phil 16. Jan 2009 12:01

Re: id vom letzten insert
 
ich habe eine tabelle klassen da lege ich einen datensatz an(also eine klasse)

dann habe ich eine tabelle jahrgaenge da lege ich auch einen datensatz an

und dann habe ich eine tabelle klassen_jahrgaenge

da lege ich einen datensatz an der aus der id besteht von dem angelegten datensatz in klassen und von dem angelegten datensatz in jahrgaengen

jfheins 16. Jan 2009 12:01

Re: id vom letzten insert
 
Zitat:

Zitat von Luckie
Gut, aber auch da interessiert dem Entwickler nicht der konkrete Wert der IDs.

Später nicht mehr, aber zum einfügen schon:

Wenn ich ein neues Buch hinzufüge, erstelle ich z.B. erst einen Buch-eintrag und dann die Seiten. Dazu muss ich aber die ID des Buches wissen. Und dafür benutze ich dann die Funktion mysql_last_insert_id() ;)

Also Buch einfügen :arrow: ID herausfinden :arrow: Seite mit dieser ID einfügen


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:10 Uhr.
Seite 2 von 4     12 34      

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