AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken violation of FOREIGN KEY constraint
Thema durchsuchen
Ansicht
Themen-Optionen

violation of FOREIGN KEY constraint

Ein Thema von Zwirbel · begonnen am 16. Dez 2016 · letzter Beitrag vom 22. Dez 2016
Antwort Antwort
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.371 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: violation of FOREIGN KEY constraint

  Alt 16. Dez 2016, 08:14
Moin,
wenn ich das richtig sehe, überträgst du jeden Datensatz einzeln.
Was spricht dagegen, vor der Übertragung zu prüfen, ob in der Mastertabelle überhaupt ein passender Datensatz existiert?
Hat die Mastertabelle keinen passenden Key, überträgst du den Datensatz einfach nicht.
Peter
  Mit Zitat antworten Zitat
Zwirbel

Registriert seit: 17. Aug 2009
66 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: violation of FOREIGN KEY constraint

  Alt 16. Dez 2016, 08:23
Moin,
wenn ich das richtig sehe, überträgst du jeden Datensatz einzeln.
Was spricht dagegen, vor der Übertragung zu prüfen, ob in der Mastertabelle überhaupt ein passender Datensatz existiert?
Hat die Mastertabelle keinen passenden Key, überträgst du den Datensatz einfach nicht.
Der Gedanke war mir während des Schreibens meiner Frage auch gekommen. Aber diese Einfüge-Routine weiß von Master/Detail nichts, weil sie global für alle Tabellen gleich arbeitet. Da müsste ich dann spezielle Anweisungen schreiben, bei bestimmten Tabellennamen darauf zu achten, ob in einer zweiten (Master-)Tabelle ein passender Datensatz enthalten ist. Ist auf jeden Fall eine Option über die ich vllt. doch noch mal weiter grübeln sollte. Ist vllt. pragmatischer. Danke.
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#3

AW: violation of FOREIGN KEY constraint

  Alt 16. Dez 2016, 08:31
Mal ne andere Idee. Warum nicht eine Pivottabelle erzeugen welche nur jene IDs (BagStatListId und BagStatCalId) listet, die auch eine Entsprechung haben. Alternativ könnte auch eine Pivottabelle reichen bei der halt die ID aus der Mastertabelle auf NULL (ist also wichtig daß das geht) steht wenn kein entsprechender Datensatz existiert und dann beim späteren Migrieren alle "WHERE BagStatListId=NULL" auszusieben.

Eine solche Pivottabelle könnte sich auch gut eignen noch gleich festzuhalten welche Datensätze bereits migriert oder eben ungültig sind (verstoßen gegen die FOREIGN KEY Auflage).
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)

Geändert von Assarbad (16. Dez 2016 um 08:34 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.660 Beiträge
 
Delphi 12 Athens
 
#4

AW: violation of FOREIGN KEY constraint

  Alt 16. Dez 2016, 08:33
Oder einfach über einen INNER JOIN:
SQL-Code:
SELECT
  Detail.*
FROM
  Detail
  JOIN
    Master ON Master.PK = Detail.FK
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#5

AW: violation of FOREIGN KEY constraint

  Alt 16. Dez 2016, 08:37
Oder einfach über einen INNER JOIN:
SQL-Code:
SELECT
  Detail.*
FROM
  Detail
  JOIN
    Master ON Master.PK = Detail.FK
Wenn Paradox das kann. Kenne mich mit Paradox nämlich nicht aus. Aber ich verstand es so, daß die Daten erst bei Ankunft in Firebird mit klassischem SQL zugreifbar sind.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.660 Beiträge
 
Delphi 12 Athens
 
#6

AW: violation of FOREIGN KEY constraint

  Alt 16. Dez 2016, 08:39
*Psst* Ganz ehrlich: ich weiß es auch nicht, habe mich mit Paradox nie wirklich beschäftigt. Aber wenn, dann wäre das wahrscheinlich die eleganteste Option
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  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 21:39 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