Google+ Followers

woensdag 24 oktober 2012

De kip, het ei en de forkeign-key constriant.

Dit is min of meer onder het motto "weet u het nog?".

Tabellen die zichzelf refereren via een FK kunnen in de loop der tijd in een kip-en-ei situatie komen, een eerder gemaakt record kan verwijzen naar een later gemaakt record. Gevolg: bij het restoren of kopieren van de data zal de database klagen dat het id waarnaar wordt verwezen niet bestaat. Logisch, want dat record komt pas later. Sorteren heeft in deze situaties geen zin want er is geen volgorde te bedenken waarin en record tegelijk nu en pas later wordt gemaakt.

De oplossing is een "ohja" momentje; je kunt tijdelijk de FK constraints uitzetten. Sommige databases kunnen dat met een SET commando, anderen kunnen FK's disablen met een ALTER statement.

Vlak voor het importeren zet je de FK's van de tabel uit, en er vlak na weer aan.