Problem mit Fremdschlüssel

Alles, was MariaDB und MySQL betrifft, kann hier besprochen werden.

Problem mit Fremdschlüssel

Postby Ngar » 03. November 2007 16:16

Hallo,

bin noch recht neu was MySQL angeht und habe eine schwierigkeit, die ich mit google noch nicht lösen konnte.

Ich verwende XAMP und laut phpinfo() ist MySQL Client API version 5.0.45 installiert.

Laut Dokumentation soll ich mit folgendem Code:

Code: Select all
CREATE TABLE reviewing(
reviewingid INTEGER AUTO_INCREMENT ,
papername VARCHAR( 20 ) ,
reviewername VARCHAR( 20 ) ,
PRIMARY KEY ( reviewingid )
);

CREATE TABLE score(
reviewingid integer,
questionnumber integer,
score integer,
FOREIGN KEY ( reviewingid ) REFERENCES reviewing( reviewingid ) ON DELETE CASCADE
);


eine Reference über einen Fremdschlüssel erstellen können.

Wenn ich nun einen Eintrag in die Tabelle score vornehme
Code: Select all
insert into score values(1,1,5);

, ohne das was in der Tabelle reviewing steht, sollte doch eine Fehlermeldung kommen, die mich daraufhinweist, das es in der Tabelle reviewing keinen Eintrag mit dem Primärschlüssel (in diesem Fall '1') gibt.

MySQL führt diese Anweisung aber ohne Beanstandung aus.

Warum? Wo liegt mein Fehler?

Danke

Ngar
Ngar
 
Posts: 8
Joined: 02. November 2007 12:11

Postby Wiedmann » 03. November 2007 16:59

eine Reference über einen Fremdschlüssel erstellen können.

Deine Datenbankengine ist aber schon InnoDB und nicht MyISAM?
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Ngar » 03. November 2007 17:33

Wiedmann wrote:Deine Datenbankengine ist aber schon InnoDB und nicht MyISAM?


ist es dafür ausreichen an das Ende der create table anweisung
Code: Select all
engine=innoDB
zu schreiben?

Denn auch mit dieser Anweisung wird die insert-Anweisung ausgeführt.

Bisher schreibe ich meine SQL-Anweisung per Hand in phpMyAdmin, aber da sollte doch egal sein, oder ?!

Wo kann ich prüfen, welche engine Verwendung findet?

<edit>
ich habe gerade den Eintrag in phpMyAdmin-gefunden. Die Tabellen sind trotz der engine-Anweisung in MyISAM. Bisher bin ich aber aus den Dokumentationen (den englischen) nicht recht schlau geworden, wie ich das ändere.

Wenn ich per phpMyAdmin eine Tabelle erstelle kann ich zwar per Drop-Down ein Tabellen-Typ auswählen, aber da ist kein InnoDB dabei :/

</edit>

Danke

Ngar
Ngar
 
Posts: 8
Joined: 02. November 2007 12:11

Postby Wiedmann » 03. November 2007 17:48

Wenn ich per phpMyAdmin eine Tabelle erstelle kann ich zwar per Drop-Down ein Tabellen-Typ auswählen, aber da ist kein InnoDB dabei :/

Dann ist in deiner "my.cnf" InnoDB nicht aktiviert.
Wiedmann
AF Moderator
 
Posts: 17106
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Ngar » 03. November 2007 18:04

Vielen vielen Dank!!!

dank deines Hinweises hab ich es hinbekommen.
Schwr war es nicht, aber finden muss man es :oops:

Nochmals Danke

Ngar
Ngar
 
Posts: 8
Joined: 02. November 2007 12:11


Return to MariaDB - MySQL

Who is online

Users browsing this forum: No registered users and 1 guest