AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Firebird: Constraint enable/disable?

Firebird: Constraint enable/disable?

Ein Thema von omata · begonnen am 30. Dez 2008 · letzter Beitrag vom 3. Mär 2010
Antwort Antwort
Seite 2 von 2     12
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.026 Beiträge
 
Delphi 10.4 Sydney
 
#11

Re: Firebird: Constraint enable/disable?

  Alt 2. Mär 2010, 18:54
Hallo,

welche Firebird-Version hast du denn ?
Das läuft wohl erst ab der 2.1er.


Heiko
Heiko
  Mit Zitat antworten Zitat
shadowman

Registriert seit: 1. Nov 2005
48 Beiträge
 
#12

Re: Firebird: Constraint enable/disable?

  Alt 2. Mär 2010, 19:16
Hallo Heiko,
wir nutzen die Verison 2.1.1.1.790, also auf jeden Fall die 2.1er.

Klappt aber trotzdem nicht, wie es aussieht.

Generell soll es aber gehen, glaube ich. Steht hier klar drin:
http://www.firebirdfaq.org/faq20/

Zitat:
Alternatively, you can disable the constraints during the import and turn them back on later.
Dummerweise kein Wort darüber, wie man es machen soll.
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.026 Beiträge
 
Delphi XE3 Enterprise
 
#13

Re: Firebird: Constraint enable/disable?

  Alt 3. Mär 2010, 09:27
Während der Constraint-Deaktivierung darf die Datenbank sicher nicht im Betrieb weitergenutzt werden.
Was würde jetzt eigentlich dagegen sprechen den Server zu stoppen und die DB einfach zu kopieren?

Grüße // Martin
Martin Schaefer
Phaeno
  Mit Zitat antworten Zitat
shadowman

Registriert seit: 1. Nov 2005
48 Beiträge
 
#14

Re: Firebird: Constraint enable/disable?

  Alt 3. Mär 2010, 13:12
In unserem Fall geht es darum, dass wir während eines Updates einige Systemdatensätze in die DB einfügen wollen / müssen, die miteinander per Constraints zusammenhängen. Es sind zwar korrekte Datensätze und genauso würde man sie auch übers Programm erstellen können theoretisch, also Schritt für Schritt die entsprechenden IDs / Verweise eintragen etc.

Beim Einfügen soll das alles in einem Rutsch passieren und eben das Einfügen klappt nicht, weil die ID des Datensatzes A, die beim Datensatz B eingetragen ist, im selbern Schritt wie Datensatz B eingetragen werden soll.

Ob es an sich richtig ist von der Idee her, sei mal dahingestellt, da es ja in einer Transaktion läuft, könnte man denken, das es geht...

Deswegen die Suche nach einer Möglichkeit, die Consntraints zu deaktiveiren, die Daten einzufügen und dann wieder zu aktivieren. Wenn etwas mit den Daten nicht stimmt, soll beim Aktivieren der Constraints der Fehler kommen, was vollkommen ok wäre.
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.026 Beiträge
 
Delphi XE3 Enterprise
 
#15

Re: Firebird: Constraint enable/disable?

  Alt 3. Mär 2010, 15:09
Da ich hier noch mit FB 1.5 arbeite würde ich das in 3 Schritten angehen:

1. Datenbankstruktur ohne Constraints viea SQL-DDL neu anlegen.
2. Daten einfügen (ohne constraints) via Insert-Statements
3. Constraints via SQL-DDL hinzufügen


Grüße // Martin
Martin Schaefer
Phaeno
  Mit Zitat antworten Zitat
shadowman

Registriert seit: 1. Nov 2005
48 Beiträge
 
#16

Re: Firebird: Constraint enable/disable?

  Alt 3. Mär 2010, 15:46
Hi Martin,
für eine neue Datenbank machen wir das genauso und das klappt problemlos.
Die Sache ist, dass wir sowas an bestehenden Datenbanken auch durchführen müssen, sprich die schon bei Kunden im Einsatz sind.
Da ist sowas leider nicht mehr möglich, es sei denn man lösch erst alle Beziehungen, fügt die Daten ein und anschließend erneut die beziehungen, aber das ist keine Lösung, bei der man ein gutes Gefühl hat, glaube ich

Danke für Deine Bemühungen.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 13:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf