"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

mysql und foreign keys

d3ft0n3 02.01.2006 - 23:15 704 4
Posts

d3ft0n3

grinder
Avatar
Registered: Apr 2003
Location: Graz
Posts: 748
ich muss eine kleine datenbankanwendung schreiben, werd aber aus den foreign keys nicht so recht schlau...

ich verwende phpmyadmin, jedoch nur zum betrachten meiner resultate, das erstellen der datenbank mache ich in einem eigenen php-script, was ja auch einwandfrei funktioniert hat, nur werden mir im phpmyadmin die foreign keys nicht angezeigt...

die foreign keys habe ich nach folgendem schema angegeben:

CREATE TABLE parent (
'parent_id' int(3),
'parent_name' varchar(30),
PRIMARY KEY (vater_id)
) TYPE = InnoDB;

CREATE TABLE child (
'child_id' int(3),
'parent_id' int(3),
'child_name' varchar(30),
PRIMARY KEY (child_id),
FOREIGN KEY (parent_id) REFERENCES parent(parent_id)
) TYPE = InnoDB;

mache ich irgend einen fehler oder werden die foreign keys im phpmyadmin einfach nicht angezeigt?

fresserettich

Here to stay
Registered: Jul 2002
Location: hier
Posts: 5381
hast eh die 5er version weil vorher werden sie nicht unterstützt iirc
sonst geh über die console rein und als dir die ganzen keys mal anzeigen

d3ft0n3

grinder
Avatar
Registered: Apr 2003
Location: Graz
Posts: 748
php ist version 5.0.4, sollte also kein problem sein

wenn ich mir die tabelle mit 'DESCRIBE bla;' beschreiben lasse, steht in der key-spalte 'MUL'...
stimmt das nun? beim recherchieren bekam ich für MUL bloß wirre beschreibungen von wegen "index, der über mehrere spalten geht blablabla" oder im mysql-manual "The MUL value indicates that multiple occurrences of a given value are allowed within the column.", jedoch kein wort von foreign keys...

edit:

k, es stimmt nicht...
ich kann datensätze einfügen auch wenn der betroffene foreign key nicht existiert...
hat irgendjemand vorschläge?
Bearbeitet von d3ft0n3 am 03.01.2006, 02:39

Bodominjaervi

OC Addicted
Registered: Jul 2002
Location: AT
Posts: 7813
MySQL macht kein CHECK um zu prüfen, ob der FK existiert.

http://dev.mysql.com/doc/refman/4.0...reign-keys.html
Bearbeitet von Bodominjaervi am 03.01.2006, 12:58

d3ft0n3

grinder
Avatar
Registered: Apr 2003
Location: Graz
Posts: 748
Zitat von LakeBodom
MySQL macht kein CHECK um zu prüfen, ob der FK existiert.

http://dev.mysql.com/doc/refman/4.0...reign-keys.html
deshalb benutz ich ja auch innodb und indiziere die elemente als foreign keys
http://dev.mysql.com/doc/refman/4.0...onstraints.html
hmmm, wie's aussieht muss ich da einen workaround im php schreiben, der beim einfügen alle parent-elemente durchläuft :rolleyes:
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz