AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

AutoIncrement mit FireBird

Ein Thema von Marco Steinebach · begonnen am 15. Apr 2021 · letzter Beitrag vom 15. Jul 2021
Antwort Antwort
Neumann

Registriert seit: 6. Feb 2006
Ort: Moers
542 Beiträge
 
Delphi 12 Athens
 
#1

AW: AutoIncrement mit FireBird

  Alt 18. Apr 2021, 09:30
Das kann man machen, neue Datenbank mit den "Alten" Daten füllen und dann die neue verwenden. Ist aber wesentlich aufwendiger als die Bestehende zu ändern. Fehler sind natürlich auch möglich, etwa wenn man vergisst die Tabelle X zu füllen usw. .

Einmal ist wohl kein Problem, aber was ist wenn der Benutzer 4 Updates auslässt und gleich von 1.5 auf 2.0 geht?

Ich würde es nicht so machen. Wir lassen bei jeder Versionsänderung die ganze Datenbank prüfen und alle Tabellen, Proceduren, Trigger usw. wenn nötig anpassen. Dauert manchmal etwas und kann auch teilweise fehlschlagen, wenn z.B. kein exklusiver Zugriff auf die Datenbank gegeben ist. Ist aber sonst recht sicher und man kann den Vorgang auch mehrmals durchführen wenn es nicht gleich klappt.
Ralf
Gruß vom Niederrhein
  Mit Zitat antworten Zitat
Marco Steinebach

Registriert seit: 4. Aug 2006
503 Beiträge
 
Delphi 5 Enterprise
 
#2

AW: AutoIncrement mit FireBird

  Alt 15. Jul 2021, 06:49
Hallo zusammen,
Ich hab mich damit jetzt mal beschäftigt, und gleich noch ein Problem, oder eine Frage:
Code:
create table objects (
  id integer generated by default as identity primary key,
  name varchar(15)
);
Als ich meine Id noch selbst gefüllt habe, konnte ich einfach sagen:
Code:
insert into objects values (17, 'Test');
Die Id-Spalte füllt er jetzt selber.
Klar nun kann ich schreiben:
Code:
insert into objects (name) values ('Test');
Das funktioniert auch, aber mach das mal mit, sagen wir, über 20 Spalten...
Gibt es eine Möglichkeit beim Insert die ganze Bennennung der Spalten wegzulassen, aber so, dass er die Id selbst ausfüllt. Also sowas wie:
Code:
insert into objects values ({übergeh_die_Spalte},'Test');
Wenn ich ALLE Spalten beim Insert angeben muss, nützt mich das ganze schöne Auto-Increment nix.

Herzlich grüßt
Moo
Marco Steinebach
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
782 Beiträge
 
#3

AW: AutoIncrement mit FireBird

  Alt 15. Jul 2021, 07:08
Gib als Wert NULL an.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.379 Beiträge
 
Delphi 12 Athens
 
#4

AW: AutoIncrement mit FireBird

  Alt 15. Jul 2021, 08:34
Nein, denn "NULL" heißt "schreib NULL in das Feld" und der Generator wird garnicht verwendet.


Es gibt einige DBMS, da kann man "DEFAULT" in INSERT-Statements benutzen.

Ansonsten werden Default- oder AutoInc-Definitionen nur dann verwendet, wenn das Feld eben nicht im INSERT-Statement drin steht.

SQL-Code:
INSERT INTO objects (name) VALUES ('Test');
INSERT INTO objects (id, name) VALUES (DEFAULT, 'Test');

INSERT INTO objects (name)
VALUES
  ('Test1'),
  ('Test2'),
  ('Test3'),
  ('Test4');

Zitat:
insert into objects values (17, 'Test');
Sowas macht man eh nicht, also ohne die Feld-Definitionen, denn das knallt schnell mal, wenn die Felder in der DB nicht der "erwarteten" Reihenfolge entsprechen, oder gar mehr Felder vorhanden sind.
Passiert z.B. gern mal bei Updates/Upgrades, wenn man über die Jahre die DB-Struktur anpasst, und Felder hinzufügt/entfernt/umbenennt/........
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Marco Steinebach

Registriert seit: 4. Aug 2006
503 Beiträge
 
Delphi 5 Enterprise
 
#5

AW: AutoIncrement mit FireBird

  Alt 15. Jul 2021, 08:57
Huhu Himitsu,
Gut, , dann schreib ich's doch um - 'grummel!
Herzlichen Dank!
Marco Steinebach
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:48 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