ON DELETE CASCADE ikke muligt ??

Tags:    databaser


Hej alle sammen,
Jeg støder ind imellem på et underligt ptoblem, når jeg prøver definere "On delete cascade" på en nøgle...

Jeg får f.esk fejlbeskeden,som denne:

'KUNDE' table saved successfully
'PROJEKT' table
- Unable to create relationship 'FK_PROJEKT_KUNDE'.
Introducing FOREIGN KEY constraint 'FK_PROJEKT_KUNDE' on table 'PROJEKT' may cause cycles or multiple cascade paths. Specify ON DELETE NO ACTION or ON UPDATE NO ACTION, or modify other FOREIGN KEY constraints.
Could not create constraint. See previous errors.


Hvad er regler for lave On delete cascade ??



6 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
for contraints gælder det at de to kolonner i hver deres tabel er af absolut samme type.
Dertil gælder det at der ikke må findes værdier i target-tabellen som ikke eksisterer i source-tabellen.



Det er fordi jeg ikke har givet et svar, men kun en kommentar. :)
Så nu får du et svar.



Det er muligt at lave en ON DELETE CASCADE, for så skal den slette de tilhørende foreign keys. Opretter du din FK constraint i kunde eller project og hvilken vej går den? Hvordan ser din query ud for din create?

EDIT: Er der tale om MySQL, MSSQL eller noget andet?



Indlæg senest redigeret d. 24.11.2009 09:08 af Bruger #6559

Der er tale om MSSQL server 2008

Jeg har prøvet lave ON DELETE CASCADE på fremmenøgler...

Men noget siger mig, problematikken har noget med dead end at gøre...

Den kan vist ikke lide, hvis der indgå tabelleler i en ring, de binder hinanden..Hvis man laver ON DELETE CASCADE, kan den vist ikke finde ud af hvad skal Slettes først ?!



Jeg mener at min lærer har sagt at man ikke kan forbinde tabeller i en ring, da du ligesom selv siger, den ved ikke hvor den skal slette fra først. Så du skal nok genoverveje dit design hvis det er i en "ring" lige nu.




hmmmm jeg vil acceptere Martin Askæj Kristensen svar som den rigtige...Men jeg kan desværre ikke se hans navn nede blandt folk som man kan giv point til!



t