PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MYSQL und Fremdschlüssel



eRaaaa
23.09.2008, 02:52
Hallo,

ich musste gerade feststellen, dass MYSQL in Sachen ForeignKeys mich nochmal zum Wahnsinn treibt :)

Ich möchte ein Attribut als foreign key eintragen und auf ein anderes Attribut (prim key) referenzieren, wie ich es bei oracle auch tue ;) (befehl nimmt er an -> keine Fehlermeldung)

Nunja, nu kann ich beim foreign key attribut aber eintragen was ich will, das ja nicht so der Sinn des Ganzen.

Nun habe ich ein bisschen gegoogelt und habe des öfteren gelesen, dass es am Tabellentyp liegen soll. MyISAM unterstützt wohl keine Fremdschlüssel? Ich kann es zwar eintragen, aber es wird nicht beachten? Stimmt das soweit ?

Hat jmd Erfahrung damit, wie ich dennoch Fremdschlüssel benutzen kann?
Mit InnoDB als Tabellentyp soll es funktionieren ??! , leider habe ich damit keine Erfahrungen, bzw ich habe mal meine Tabelle mit diesem Typen erstellt, er spuckt mir keine Fehlermeldung, aber kann es sein dass PhpmyAdmin mit dem Typen nichts anfangen kann? :)

Ich werde es jetzt anders realisieren, aber interessieren würd mich das Thema dennoch, ist ja nicht ganz unwichtig !

Gruß
eRa

Benutzer1699
23.09.2008, 04:59
Hehe, wenn du Sachen wie Foreign Key benötigst / verwendest, solltest du dir überlegen gleich ein besseres DBMS zu verwenden ... PostgreSql z.B.

Innodb unterstüzt Foreign Keys, du kannst bestehende MyIsam auch in Innodb wechseln.
Ein weiterer Vorteil ist auch Row- statt Table-Locking beim Schreiben.

Dafür kann Innodb nicht alles was Myisam kann... aber das ist dann eh kein SQL92 :D

so long...

eRaaaa
23.09.2008, 05:07
Mhm...PostgreSQL ist dann aber auch wieder objekt-relationales DBMS oder? ;(

aber naja, werds jetzt anders machen, hat mich nur eben interessiert obs wirklich so ist, dass man da kein foreign key eintragen kann ;/

Benutzer1699
23.09.2008, 06:16
Postgre ist imho vorteilhafter als Mysql ...
weniger Enginge-Probleme, besserer SQL-Support und auch auf wichtige Features wie Stored Procedures oder Check-Constraints muss man nicht verzichten.

Aber jedem die Seine *g* Btw. Postgre unter Windows bin ich dagegen, da ist es leider instabiler als MySql - sonst top.