Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Firebird: Constraint enable/disable? (https://www.delphipraxis.net/126678-firebird-constraint-enable-disable.html)

omata 30. Dez 2008 23:26

Datenbank: Firebird • Version: 2.1 • Zugriff über: -

Firebird: Constraint enable/disable?
 
Gibt es eine Möglichkeit, in Firebird, Constraints abzuschalten? Ich möchte sie nicht löschen, sondern nur kurzzeitig außer Kraft setzen.

Hoffe ihr habt einen Tipp für mich.

Wunni 30. Dez 2008 23:38

Re: Firebird: Constraint enable/disable?
 
SQL-Code:
alter index <Indexname> inactive;

omata 30. Dez 2008 23:46

Re: Firebird: Constraint enable/disable?
 
Hallo Wunni,

vielen Dank für deinen Hinweis.

Ich möchte aber keinen Index deaktivieren, sondern alle Foreign-Keys und den Primary-Key einer Tabelle.

Sorry, für die unpräzise Fragestellung.

Wunni 30. Dez 2008 23:54

Re: Firebird: Constraint enable/disable?
 
Sorry, Deine Frage war schon klar formuliert. Ich habe mich von IBExpert täuschen lassen. Bei Interbase kann man den Foreign Key nicht deaktivieren. Man kann mit IBExpert aber bei einer Firebird 2.0 Datenbank den Foreign Key deaktivieren, erhält dann aber vom Firebird Server eine Exception.

hoika 31. Dez 2008 00:03

Re: Firebird: Constraint enable/disable?
 
Hallo,

zuerst doch mal die Frage, wozu ?


Heiko

omata 31. Dez 2008 01:49

Re: Firebird: Constraint enable/disable?
 
Hallo Heiko,

ich möchte zwei Datenbanken synchronisieren.

mkinzler 31. Dez 2008 11:28

Re: Firebird: Constraint enable/disable?
 
Das geht m.W. nur wenn man die Datenbank in den singelusermodus versetzt
SQL-Code:
alter constraint <constraint> disable;
...
alter constraint <constraint> enable;

omata 31. Dez 2008 17:08

Re: Firebird: Constraint enable/disable?
 
Ok, danke schonmal für diese Infos.

Man kann also einen Constraint ein-/abschalten. Geht das auch bezogen auf eine Tabelle? Oder muss ich mir jetzt erstmal alle Constraints einer Tabelle raussuchen, um sie dann abzuschalten?

Ich denke dabei an (mssql) folgendes...
Code:
ALTER TABLE tabelle NOCHECK CONSTRAINT ALL

mkinzler 31. Dez 2008 17:17

Re: Firebird: Constraint enable/disable?
 
Keine Ahnung im Zweifel einfach eine Schleife über alle Constraints ( über Systemtabllen). Oder Schreibe Holger (User IBexpert) oder Thomas ( Steinmaurer) mal per PN oder Email an.

shadowman 2. Mär 2010 16:33

Re: Firebird: Constraint enable/disable?
 
Zitat:

Zitat von mkinzler
Das geht m.W. nur wenn man die Datenbank in den singelusermodus versetzt
SQL-Code:
alter constraint <constraint> disable;
...
alter constraint <constraint> enable;

Hallo,
ich such auch nach einer Möglichkeit, die Constraints vorübergehend zu deaktivieren und später zu aktivieren.

Das Beispiel von oben scheint nicht (mehr) zu funktionieren.

Habe es mit Database Workbench probiert und auch im Singleusermodus hat es nicht geklappt:
SQL-Code:
< ERROR:
  ISC ERROR CODE:335544569
 
  ISC ERROR MESSAGE:
  Dynamic SQL Error
  SQL error code = -104
  Token unknown - line 1, column 7
  constraint
 
  STATEMENT:
  TIB_DSQL: "<TIB_Script>.<TIB_DSQL>."
Das erste Vorkommen von constraint führt shcon zum Problem.

Was läuft schief? Wie sonst kann man die constraints deaktivieren / aktivieren?


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:17 Uhr.
Seite 1 von 2  1 2      

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