-
skip foreign key?
Hallo!
Gibt es eine Möglichkeit in SQL beim Insert in Tabellen, die Foreign Key Constraints haben, die Sätze mit Constraintviolation einfach zu überspringen?
Das sind Datensätze die keiner mehr braucht.
Möchte das nicht händisch bei 50+ Dateien machen müssen.
Lg Peter
Wer andren eine Bratwurst brät, hat ein Bratwurstbratgerät!
-
... where exists könnte dein Freund sein!
D*B
Zitat von dabeda
Hallo!
Gibt es eine Möglichkeit in SQL beim Insert in Tabellen, die Foreign Key Constraints haben, die Sätze mit Constraintviolation einfach zu überspringen?
Das sind Datensätze die keiner mehr braucht.
Möchte das nicht händisch bei 50+ Dateien machen müssen.
Lg Peter
-
Das Problem dabei ist, dass ich in meinem Daten-Übernahmeprogramm nicht auf where exists abfragen kann weil ich dort noch nicht weiß welche Constraints ziehen.
Erzeuge mir aus den systables und syscolumns meine Insertstatements.
Kann man beim "Anlegen" der Constraints vielleicht sowas wie "delete violated" sagen? Dann würd ich die Tabellen vor anlegen der Constraints füllen.
Hintergrund:
Es existiert eine Anwendung die aus 50+ physischen Files besteht, diese werden von DDS auf DDL geändert, Constraints angelegt und Datums- und Zeitfelder (8P 0/6P 0) auf echte Datums und Zeitfelder geändert.
Die RPGs dahinter wurden schon auf FREE konvertiert und werden an die "neuen Umstände" angepasst.
Mfg Peter
Wer andren eine Bratwurst brät, hat ein Bratwurstbratgerät!
-
Warum klemmst Du die Constraints (disabled) nicht vor dem Kopieren ab und aktivierst sie nach dem Füllen wieder.
Über den iSeries Navigator kann man das mit ein paar Mouseclicks erledigen.
Ungültige Constraints gehen nach dem aktivieren in einen Pending Status, der dann manuell berarbeitet werden kann.
Birgitta
-
... warum weiß man das nicht, die constraints sind auch im repository drin? Die Fremdschlüssel müssen doch bekannt sein und wenn man in der richtigen Reihenfolge arbeitet kann man mit where exists füllen.
Wenn man für die foreign key Felder null zulässt (was sich empfiehlt), dann kann man die auch zunächst ungefüllt lassen und im Nachgang per update skript hochziehen.
Constraints später anlegen? dann gehen die Dateien auf check pending und dann wirds fummelig, da ist es besser die Arbeit im Vorfeld in die Skripten reinzustecken. Programme helfen da auch wenig, da kann man zwar die violations übergehen, aber bei falscher Reihenfolge fehlen am Ende dann Sätze!
D*B
Zitat von dabeda
Das Problem dabei ist, dass ich in meinem Daten-Übernahmeprogramm nicht auf where exists abfragen kann weil ich dort noch nicht weiß welche Constraints ziehen.
Erzeuge mir aus den systables und syscolumns meine Insertstatements.
Kann man beim "Anlegen" der Constraints vielleicht sowas wie "delete violated" sagen? Dann würd ich die Tabellen vor anlegen der Constraints füllen.
Hintergrund:
Es existiert eine Anwendung die aus 50+ physischen Files besteht, diese werden von DDS auf DDL geändert, Constraints angelegt und Datums- und Zeitfelder (8P 0/6P 0) auf echte Datums und Zeitfelder geändert.
Die RPGs dahinter wurden schon auf FREE konvertiert und werden an die "neuen Umstände" angepasst.
Mfg Peter
-
Zitat von B.Hauser
Warum klemmst Du die Constraints (disabled) nicht vor dem Kopieren ab und aktivierst sie nach dem Füllen wieder.
Über den iSeries Navigator kann man das mit ein paar Mouseclicks erledigen.
Ungültige Constraints gehen nach dem aktivieren in einen Pending Status, der dann manuell berarbeitet werden kann.
Birgitta
Das wars!!
Ach kann das Leben manchmal einfach sein ...
Wer andren eine Bratwurst brät, hat ein Bratwurstbratgerät!
-
Zitat von BenderD
... warum weiß man das nicht, die constraints sind auch im repository drin? Die Fremdschlüssel müssen doch bekannt sein und wenn man in der richtigen Reihenfolge arbeitet kann man mit where exists füllen.
Wenn man für die foreign key Felder null zulässt (was sich empfiehlt), dann kann man die auch zunächst ungefüllt lassen und im Nachgang per update skript hochziehen.
Constraints später anlegen? dann gehen die Dateien auf check pending und dann wirds fummelig, da ist es besser die Arbeit im Vorfeld in die Skripten reinzustecken. Programme helfen da auch wenig, da kann man zwar die violations übergehen, aber bei falscher Reihenfolge fehlen am Ende dann Sätze!
D*B
Diesen Weg werde ich mir auch mal durchdenken, vielleicht brauch ich das ja noch öfter.
Wer andren eine Bratwurst brät, hat ein Bratwurstbratgerät!
-
... das Mäusekino brauchst du nicht, da gibt es auch den (einfacheren) chgpfcst - aber dann???
... musst du zu Fuss nachsehen, wo das klemmt, per händisch erstelltem SQL Sätze mit where not exists rausfeuern, wieder CHGPFCST zum aktivieren und dieser Zyklus kann dir bei der Auftragsdatei für Kunde, Lieferant, Artikel, Adresse, Lieferadresse mehrfach passieren (und auch noch iterativ - Kunde fliegt wegen Constraint raus, lässt sich aber nicht entfernen, weil er in Auftrag drinhängt...) das ist schnell angefangen und beschäftigt dich Tage...
D*B
Zitat von dabeda
Das wars!!
Ach kann das Leben manchmal einfach sein ...
-
Zitat von BenderD
... das Mäusekino brauchst du nicht, da gibt es auch den (einfacheren) chgpfcst - aber dann???
... musst du zu Fuss nachsehen, wo das klemmt, per händisch erstelltem SQL Sätze mit where not exists rausfeuern, wieder CHGPFCST zum aktivieren und dieser Zyklus kann dir bei der Auftragsdatei für Kunde, Lieferant, Artikel, Adresse, Lieferadresse mehrfach passieren (und auch noch iterativ - Kunde fliegt wegen Constraint raus, lässt sich aber nicht entfernen, weil er in Auftrag drinhängt...) das ist schnell angefangen und beschäftigt dich Tage...
D*B
Und du hast recht, ist doch nicht so einfach wie es ausgesehen hat, vor allem sind vieeele auf pending.
Werd mir eine Steuerdatei anlegen in der die Tabellen in richtiger Reihenfolge stehen und dort SQL-Statements hinterlegen.
Schade ...
Wer andren eine Bratwurst brät, hat ein Bratwurstbratgerät!
Similar Threads
-
By harkne in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 26-03-09, 09:16
-
By ZeusNBG in forum NEWSboard Programmierung
Antworten: 11
Letzter Beitrag: 20-05-08, 12:26
-
By emax in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 06-10-06, 11:01
-
By uwer in forum IBM i Hauptforum
Antworten: 11
Letzter Beitrag: 24-03-05, 12:40
-
By C_Dewald in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 12-08-03, 17:35
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks