DB2 Reihenfolge Create Statements

projo

Mitglied
Hallo Leute,
ich hab ein Problem und zwar will ich mehrere Tabellen erstellen. Die Create Statements werden dabei dynamisch vom ETL-Tool erzeugt. Ich kenne also weder die Anzahl der Tabellen noch deren Constraints. Diese Create Statments beinhalten auch ForeignKey-Constraints. Wenn ich nun ein Create Statment ausführe, dessen ForeignKey auf eine Tabelle verweißt die noch nicht erstellt wurde, bekomme ich einen Fehler. Die Ursache des Fehlers ist mir klar.
Meine Frage: Kann ich diesen check irgendwie deaktivieren so dass die Reihenfolge der Create Statements keine Rolle mehr spielt?

Die Möglichkeit die Reihenfolge der Create Statements zu ändern ist natürlich eine Möglichkeit, jedoch - wie ich finde - sehr komplex.

Datenbank: DB2

Beispiel:
Es existieren noch keine Tabellen

Code:
CREATE TABLE Fertigungsschrittfakten (id INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY,
MaschinenEinsatz INTEGER,
PRIMARY KEY(id) ,
FOREIGN KEY (MaschinenEinsatzFS) REFERENCES MaschinenEinsatzFS(MaschinenEinsatz) ON DELETE RESTRICT);

Der Fehler:
Code:
SQL0204N  "MW.MASCHINENEINSATZFS" ist ein nicht definierter Name.  
SQLSTATE=42704

Vielen Dank für eure Hilfe!
 

123456789

Aktives Mitglied
Hallo,

Ich kenne das ETL- Tool leider nicht. Wenn du aber die Möglichkeit hast die Statements noch zu modifizieren dannn kannst du folgendes machen

Siehe: Oracle SQL
...
INITIALLY DEFERRED DEFERRABLE tells Oracle to do deferred constraint checking. For example, to insert (1, 2) into chicken and (2, 1) into egg, we use:

INSERT INTO chicken VALUES(1, 2);
INSERT INTO egg VALUES(2, 1);
COMMIT;
...

Es sollte aber auch möglich sein, die Constraints zu deaktivieren, damit die Statements ausgeführt werden können.
Für Oracle:

Java:
private final String DISABLE_ALL_FK_CONSTRAINTS = "begin for i IN(select * from user_constraints where "
			+ "constraint_type = 'R') loop EXECUTE IMMEDIATE 'alter table '||i.table_name||' disable "
			+ "constraint '||i.constraint_name; end loop; end;";

Zum aktivieren der Constraints einfach das disable durch enable ersetzen.

LG
 

projo

Mitglied
Hallo 123456789,
vielen Dank für deine Antwort!
Der Link zur Oracle beschreibt folgende Lösung:

1. Alle Tabellen ohne Constraints erstellen
2. Constraints den Tabellen hinzufügen.

Wahrscheinlich geht es bei db2 auch nicht eleganter, deshalb werde ich es wohl so umsetzen...

Gruß
projo
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Tabellenspalte in JTable in der falschen Reihenfolge Datenbankprogrammierung 10
P Derby/JavaDB JPA Reihenfolge Spalten ändern Datenbankprogrammierung 6
ruutaiokwu reihenfolge der operanden bei join's Datenbankprogrammierung 5
G SQL Reihenfolge Datenbankprogrammierung 9
G Oracle Speichern der Reihenfolge Datenbankprogrammierung 2
M JPA Annotations @ManyToMany + reihenfolge als key Datenbankprogrammierung 15
T ResultSet#next Ungültige Reihenfolge (DB2) Datenbankprogrammierung 5
D Reihenfolge der Abfragen Datenbankprogrammierung 7
R DB2 PreparedStatement Batches ungültige Reihenfolge Datenbankprogrammierung 4
O Create Table per JDBC Fehler: ORA-00922 Datenbankprogrammierung 4
D SQL-Statement Beziehungsfehler bei CREATE TABLE Datenbankprogrammierung 2
F Create Table - Habe ich eine schwache Entität erzeugt ? Datenbankprogrammierung 4
A Problem mit Create-Statement Datenbankprogrammierung 9
H CREATE-Strings in Anwendung verwalten Datenbankprogrammierung 2
T mysql create zeile get autoincrementid Datenbankprogrammierung 2
S Create Table mit PreparedStatement Datenbankprogrammierung 2
M Vor CREATE TABLE Datenbanknamen festlege Datenbankprogrammierung 4
M Create Table und setString Datenbankprogrammierung 2
J Hibernate create database Datenbankprogrammierung 4
M Create Table Datenbankprogrammierung 8
T CREATE TABLE in Access DB Datenbankprogrammierung 2
E Problem mit create-Statement Datenbankprogrammierung 5
B datentyp boolean bei create table Datenbankprogrammierung 2
B SQlite Datenbank, trotz Statements wurden nicht alle Zeilen erzeugt? Datenbankprogrammierung 35
S Das printen der Ausgabe des Oracle-SQL-Statements in der Java-Eclipse-Konsole funktioniert nicht Datenbankprogrammierung 6
berserkerdq2 database is closed, obwohl ich alle statements in try catch blöcken habe? Datenbankprogrammierung 5
J Wohin mit den SQL-Statements ? Datenbankprogrammierung 7
E Kann man in einer if-Bedingung auch SELECT-Statements überprüfen? Datenbankprogrammierung 23
U JDBC prepaird Statements Datenbankprogrammierung 4
T Prepared Statements und Sets Datenbankprogrammierung 5
S SqlObject - eine objektorientierte Art SQL-Statements zu schreiben. Datenbankprogrammierung 4
D Anzeige wärend des Ausführens eines Statements Datenbankprogrammierung 13
Z manipulation statements with executeQuery Datenbankprogrammierung 7
F statements und resultsets schließen Datenbankprogrammierung 2
L Wiederverwendung von Prepared Statements Datenbankprogrammierung 4
N prepared Statements Datenbankprogrammierung 6
M [gelöst] Problem mit SQL Server. Statements... Datenbankprogrammierung 4
G Library zum Generieren von SQL-Statements Datenbankprogrammierung 15
H Wie viele SQL-Statements gehen in ein Batch Datenbankprogrammierung 2
P frage zu "" bei INSERT STATEMENTS Datenbankprogrammierung 2
K frage zum ausführen eines INSERT statements Datenbankprogrammierung 16
J Aufteilung von Verbindungsaufbau & SQL Statements sinnvo Datenbankprogrammierung 15
R Statements und Resultset Allgemein Datenbankprogrammierung 2
H Sql Statements automatisch generieren lassen Datenbankprogrammierung 2
G Ausführen von SQL-Statements Datenbankprogrammierung 7
H logging von postgresql statements Datenbankprogrammierung 5
G Flexible Prepared Statements Datenbankprogrammierung 2
L Mehrere SQL-Statements gleichzeitig!? Datenbankprogrammierung 5
F Update mit Prepared Statements Datenbankprogrammierung 10
M Problem mit Insert-Statements/ PreparedStatements Datenbankprogrammierung 6

Ähnliche Java Themen

Neue Themen


Oben