Einzelnen Beitrag anzeigen

mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#1

InterBase: lock conflict on no wait transaction violation of FOREIGN KEY constraint

  Alt 24. Apr 2017, 11:13
Datenbank: InterBase • Version: 7.5.1 • Zugriff über: dbExpress
Phänomen:

in eine 'Detail'-Tabelle wird per dynamisch erzeugtem SQL ein INSERT durchgeführt, der Primary Key wird über GEN_ID erzeugt, als Foreign-Key wird ein bestehender PK der Master-Tabelle eingefügt. Die dynamische Query wird über eine neu erzeugte TSQLQuery Instanz ausgeführt.

Ab und zu schlägt das INSERT fehl mit der Meldung:
Code:
lock conflict on no wait transaction violation of FOREIGN KEY constraint "CONSTRAINT_FK" on table "DETAIL".
Die Constraint CONSTRAINT_FK ist definiert als
Code:
FOREIGN KEY (FK_MASTER) REFERENCES MASTER (PK) ON DELETE CASCADE
Dass ein INSERT mit einer "violation of FOREIGN KEY" fehlschlägt, obwohl der dabei verwendete FK existiert, ist schon eigenartig. In einem Screenshot der Anwendung ist der Master-Datensatz in einem DBGrid sichtbar.

Natürlich kann der Master-Datensatz gleichzeitig in anderen Transaktionen angezeigt und editiert werden, jedoch ändert sich sein PK dabei nicht.
Michael Justin

Geändert von mjustin (24. Apr 2017 um 11:16 Uhr) Grund: doppelten Text entfernt, code-tags
  Mit Zitat antworten Zitat