![]() |
Datenbank: Firebird • Version: 2 • Zugriff über: FlameRobin
Int-Feld nachträglich auf autoincrement setzen
Moin,
ich möchte ein int-Feld (ID) in einer Tabelle nachträglich auf Autoincrement setzen und mache das mit dem FlameRobin-Dialog. Dort kann ich einen Generator erzeugen oder auswählen und einen Trigger erzeugen. Das sieht alles richtig aus, wenn ich Daten übergebe schlägt es aber fehl:
Code:
Klappt das nachträgliche Ändern nicht oder passt meine Übergabe nicht? Wenn ich die Autoincrement-Spalte weglasse, bekomme ich ein mismatch beim parametercount.
insert into MEASURED_DATA values (ID,1,2,3,4)
Grüße, Messie |
AW: Int-Feld nachträglich auf autoincrement setzen
Du solltest die Namen der Felder mit angeben, sonst weiß ja keiner was wo rein soll :zwinker:
[add] ![]() ![]() |
AW: Int-Feld nachträglich auf autoincrement setzen
Du musst in dem Fall die Spalten explizit angeben:
Code:
insert into MEASURED_DATA (spalte_a, spalte_b, spalte_c, spalte_d) values (1,2,3,4)
|
AW: Int-Feld nachträglich auf autoincrement setzen
Moin,
klappt so, danke! Ich kann aber tatsächlich
Code:
die Einträge auch ohne Bezeichner erzeugen, dabei wird dann aber wohl die autoincrement-Variable überschrieben.
insert into MEASURED_DATA values (35,1,2,3,4)
Wahrscheinlich schreibt außer mir niemand immer die ganze Zeile :wink: Ist eben ein Umbau eines Programms von Dateien auf Datenbank. Und da habe ich die ganze Zeile halt da... Grüße, Messie |
AW: Int-Feld nachträglich auf autoincrement setzen
Es wird nicht nur das Autoinc überschrieben (es wird gesetzt und nicht automatisch bestimmt), sondern rate mal was passiert, wenn sich mal das Datenbankschema ändert und die Felder in einer anderen Reihenfolge vorliegen. :wink:
Vielleicht ist es keine schlechte Idee immer die Feldnamen anzugeben. |
AW: Int-Feld nachträglich auf autoincrement setzen
Ob der "AutoInc"-Wert überschrieben wird, hängt davon ab, wie der zugehörige Trigger aussieht ;)
|
AW: Int-Feld nachträglich auf autoincrement setzen
Zudem muss man den Initialwert anpassen, sonst gibt es eine Kollision
|
AW: Int-Feld nachträglich auf autoincrement setzen
Zitat:
Code:
soetwas?
Autoincint=max(altespalte)+1
Gruß K-H |
AW: Int-Feld nachträglich auf autoincrement setzen
Klar, initial steht der auf 1, das kann nur gut gehen, wenn noch keine Daten vorhanden sind. Falls doch, muss er halt auf Maximalwert + 1 gesetzt werden.
|
AW: Int-Feld nachträglich auf autoincrement setzen
SQL-Code:
set generator <GeneratorName> to <NächsterWert>;
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:09 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 by Thomas Breitkreuz