Laden...

Autoincrement bei Firebird !?

4 Antworten
1,236 Aufrufe
Letzter Beitrag: vor 18 Jahren
Autoincrement bei Firebird !?

Hallo,

vorweg sei gesagt, dass sich diese Frage nicht direkt zu C#bezieht.
Da ich nirgens was gefunden habe, stelle ich sie dennoch.

Ich arbeite mich gerade in Firebird ein. Klappt soweit ganz gut.
Nur wie erstelle ich einen Autoincrement !?
Also um die Datenbank zu bearbeiten nutze ich IBExpert Personal.
Für ein Autoincrement (ich brauche da für die ID Spalte) gibt es da verschiedene Möglichkeiten(Generator, Trigger, Procedure). Leider habe ich keine Ahnung, wie ich die zum laufen bekomme.

Gruß

moin,

trigger erzeugen und dann


AS
BEGIN
  IF (NEW.ID IS NULL) THEN
      NEW.ID = GEN_ID(DB_Name_ID_GEN, 1);
END

Raik

Hallo,

//  Initialisierung
CREATE GENERATOR  MyTable_id;
SET GENERATOR    MyTable_id TO 0;

//  Trigger definieren
CREATE TRIGGER MyTable_Before_Insert_0 FOR MyTable
ACTIVE BEFORE INSERT POSITION 0
AS BEGIN
  IF ( New.ID IS NULL)
  THEN New.ID = GEN_ID( MyTable_id, 1);
END

Benötigst Du weitere Erläuterungen? Danach, wie ich Deine sonstigen Beiträge kennengelernt habe, wohl eher nicht; sonst frage einfach nochmal.

Falls Du den Wert schon vorher im DataSet benötigst (z.B. wegen Referenzen), dann kannst Du ihn mit einer kleinen StoredProcedure über GEN_ID() abholen.

Gruß Jürgen

PS. Nicht schnell genug, dafür vollständiger.

Danke, es geht!

Gruß