Ik heb het volgend als oplossing gevonden.
Het blijkt dat het belangrijk is dat je tabellen gedefinieerd moeten zijn als:
ENGINE=InnoDB dit is de laatse regel in een CREATE table opdracht.
Om dit te bereiken zul je, uitgaande van al bestaande tabellen, de tabellen eerst moeten exporteren, met de data!, en dan in de export file een wijziging aanbrengen.
Code:
CREATE TABLE IF NOT EXISTS `tabelnaam` (
`Veld_1` int(11) NOT NULL AUTO_INCREMENT)
ENGINE=[COLOR="#0000FF"]InnoDB[/COLOR] DEFAULT CHARSET=utf8 AUTO_INCREMENT=2849 ;
Normaal gesproken staat er dus:
Code:
CREATE TABLE IF NOT EXISTS `tabelnaam` (
`Veld_1` int(11) NOT NULL AUTO_INCREMENT)
ENGINE=[B][COLOR="#FF0000"]MyIsam[/COLOR][/B] DEFAULT CHARSET=utf8 AUTO_INCREMENT=2849 ;
Dit moet dus voor ALLE tabellen worden ingesteld waar een Foreign Key voor nodig is.
Vervolgens doe je de volgende stappen:
- Open je PhpMyAdmin (die is warschijlijk al geopend want je hebt geëxporteerd en daarna geïmporteerd.
- Selecteer de tabel waar je een Foreign Key op wilt plaatsen
- Bekijk de Structuur van de tabel, alle velden met de definities worden nu zichtbaar.
-
BELANGRIJK: Het veld voor de Foreign Key moet ook gemarkeerd zijn als een INDEX!
- Direct
ONDER de Selecteer / Deselecteer alles opties zie de onderstaande mogelijkheden
Afdrukken Relatieoverzicht Tabelstructuur voorstellen
- Klik op
Relatieoverzicht, een nieuw scherm wordt geopend en ALLE velden in de tabel worden getoond.
- Klik op de kolom,
eerste kolom, van het veld waar je een Foreign Key op wilt zetten en vervolgens op de tweede kolom en geef aan met welke tabel de relatie gemaakt moet worden
- Tenslotte geef je in de laatste 2 kolommen aan wat er gedaan moet worden bij een Delete en / of Update. (Cascade zal inhouden dat dan ALLE records "geraakt" gaan worden)
Voor hen die er mee aan de gang gaan, succes.
Hierbij een de link waar ik de wijsheid vandaan heb:
http://stackoverflow.com/questions/459312/setting-up-foreign-keys-in-phpmyadmin?rq=1
Ron