Synology-Forum.nl

Packages => Officiƫle Packages => PHPMyAdmin Package => Topic gestart door: Aanbeeld op 01 oktober 2012, 22:13:07

Titel: foreign key / references
Bericht door: Aanbeeld op 01 oktober 2012, 22:13:07
Beste,

Ben nieuw met sql databases en query's. Maar wilde toch eens proberen of ik er iets mee kan. Maar ik loop al gelijk vast bij het maken van tabelen met een koppeling van 2 velden. tabel 1 staan de projecten met een ID en in een tweede tabel contact personen van de projecten met een Project_ID dat gekoppeld is aan tabel 1.

In de diverse internet handleidingen kom ik query's tegen met references of met foreign key. Maar welke combinatie ik ook probeer ik krijg steevast een fout melding die lijkt op onderstaande:

Citaat
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Foreign key Project_ID references `Project`(`ID`)' at line 3

hierbij heb ik de volgende code gebruikt:

alter table `Betrokken`
change `Project_ID`
Foreign key Project_ID
references `Project`(`ID`);

Iemand een idee waar ik de mist in ga? Of kan ik ergens in phpMyAdmin gelijk een foreign key opgeven voor een tabel?

dank

jeroen
Titel: Re: foreign key / references
Bericht door: wizjos op 01 oktober 2012, 22:43:20
Om te beginnen gebruik ik dit nooit, maar twee dingen vallen mij op.
1) Je database-storage-engine moet Innodb zijn, niet de standaard MyISAM.
2)Je code ziet er op 1 ding na in eerste oogopslag goed uit, behalve dat het quoteje van  `Project`(`ID`); wellicht zou moeten zijn:  `Project(`ID`)`;
Maar dat kan ik ook mis hebben :mrgreen:

Wizjos
Titel: Re: foreign key / references
Bericht door: Aanbeeld op 01 oktober 2012, 22:53:28
waar stel ik de standaard storage engine in? Heb wel een pagina engines gevonden, maar daar kan ik geen standaard aan vinken.

Dank voor de tip met het aanhalingsteken, maar dat gaf dezelfde error.
Titel: Re: foreign key / references
Bericht door: wizjos op 01 oktober 2012, 22:59:53
Citaat van: "Aanbeeld"
waar stel ik de standaard storage engine in? Heb wel een pagina engines gevonden, maar daar kan ik geen standaard aan vinken.

Dank voor de tip met het aanhalingsteken, maar dat gaf dezelfde error.
Google: http://dev.mysql.com/doc/refman/5.5/en/storage-engine-setting.html
Titel: Re: foreign key / references
Bericht door: Aanbeeld op 01 oktober 2012, 23:08:43
dank, wilde net een bericht plaatsen dat ik het stukje van storage engine al gevonden had. Ga nog eens een poging wagen. Heb nu ook het sourceforge forum gevonden en hier wordt de vraag zo vaak gesteld dat ik daar toch een passend antwoord moet vinden.
Titel: Re: foreign key / references
Bericht door: wizjos op 01 oktober 2012, 23:15:28
Citaat van: "Aanbeeld"
dank, wilde net een bericht plaatsen dat ik het stukje van storage engine al gevonden had. Ga nog eens een poging wagen. Heb nu ook het sourceforge forum gevonden en hier wordt de vraag zo vaak gesteld dat ik daar toch een passend antwoord moet vinden.
Succes! Youre'on your own.... 8)
Titel: Re: foreign key / references
Bericht door: Aanbeeld op 01 oktober 2012, 23:23:54
en result,

dank voor de tips, om zetten naar de InnoDB engine was de truuk. Er verschijnt dan gelijk de mogelijkheid voor relatie beheer waar je dit dan gewoon met menu's kunt aanpassen. de geproduceerde sql code wordt dan:

ALTER TABLE `Betrokken`
ADD FOREIGN KEY (`Project_ID`)
REFERENCES `JH_Planning`.`Project`(`ID`) ON DELETE RESTRICT ON UPDATE RESTRICT;

Vanuit het main scherm is het mogelijk de standaard storage engine en table engine aan te passen naar InnoDB dit kan via meer --> variabelen. Nu wordt een tabel bij mij standaard in InnoDB gemaakt.
Titel: Re: foreign key / references
Bericht door: wizjos op 01 oktober 2012, 23:58:24
Mooi dat 't gelukt is veel succes verder!

Wizjos