Einzelnen Beitrag anzeigen

hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Race Conditions mit DBs vermeiden

  Alt 2. Jan 2008, 08:16
Hallo,

im konkreten Fall "Foreign Key" verwenden
unter Firebird sieht das per SQL dann so aus.

SQL-Code:
Alter Table Tab2 Add Constraint FK_Tab2__Tab2Id
Foreign Key (Tab1Id) References Tab1(Id)

1. Es kann kein Datensatz in Tab2 angelegt werden,
der nicht eine gültige Referenz zu Tab1 besitzt.

2. Es kann kein Datensatz in Tab1 gelöscht werden,
wenn es noch Referenzen in Tab2 gibt.

Für 2. gäbe es noch als Variante

SQL-Code:
Alter Table Tab2 Add Constraint FK_Tab2__Tab2Id
Foreign Key (Tab1Id) References Tab1(Id)
On Delete Cascade
Damit werden beim Löschen in Tab1 Referenzen in Tab2 automatisch gelöscht.


Die Syntax ist bei verschiedenen DBS aber verschieden.


Heiko
Heiko
  Mit Zitat antworten Zitat