![]() |
Datenbank: Firebird • Version: 2.0.3 • Zugriff über: uib native + OO-Layer
Firebird 2.x und Autoincrement
Hallo DP'ler,
nur mal so: Seit Firebird version 2.0 existiert ja eine alternative Syntax für Autoincrement-Werte, also statt
SQL-Code:
geht jetzt auch
select Gen_ID(GEN_Feld_ID,1) from RDB$Database
SQL-Code:
wobei Gen_Feld_ID natürlich der Generator-Bezeichner ist.
select next value for Gen_FELD_ID
Ist es eine gute Praxis, anstelle wie bisher den Generator in einem Before-Insert trigger abzufragen, den wert mittels der neuen syntax als default-Wert im Feld der jeweiligen tabelle selbst zu definieren? Würde auf den ersten Blick zumindest so manchen Trigger sparen, oder? Meinungen wie immer willkommen... :-D |
Re: Firebird 2.x und Autoincrement
Lies Dir mal
![]() |
Re: Firebird 2.x und Autoincrement
Moin, Spätmoin,
Zunächst würde ich das nur als Klärung des Syntax sehen um die interne Tabelle endlich zu vermeiden. Neige dazu den Wert wie bisher vorher zu holen und im Feld des Datasets zu halten bis der Record geschrieben wird. Dann hat jede Clientanwendung automatisch einen eindeutigen Schlüssel. Damit ergibt sich übrigens ein relativ ähnlicher Syntax zu den PostGreeSQL Sequences. Grüße // Martin |
Re: Firebird 2.x und Autoincrement
Der große Vorteil von FB >=2 ist das RETURNING
|
Re: Firebird 2.x und Autoincrement
Deshalb hatte ich auch direkt auf #5 gelinkt ;)
|
Re: Firebird 2.x und Autoincrement
Zitat:
Zitat:
|
Re: Firebird 2.x und Autoincrement
hilft mir alles bisher nur wenig weiter :gruebel:
bei mir ist halt so das ich alle user eingaben erstmal in internen objekten halte und dann, bei positiver übernahme, in einem rutsch in die DB schreibe und mit returning den ID-wert zurückhole. ID wird bei mir nur intern verwendet um PK/FK Konsistenzen zur gewähren, da fummelt kein user rum :lol: Also nochmal, ist's sinnvoll denn wert als default direkt in der tabelle/feld zu definieren oder doch lieber wie bisher im trigger? |
Re: Firebird 2.x und Autoincrement
Je nach Trigger kommt das ja auf das Gleiche raus.
|
Re: Firebird 2.x und Autoincrement
Zitat:
|
Re: Firebird 2.x und Autoincrement
Ja und nein. mit einem trigger könntest du sicherstellen, dass die ID immer mit dem Generator erzeugt wird, währrend der DEFAULT-Wert nur bei fehlendem PK zur Anwendung kommt.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:30 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