crawford97: problem mit mySQL foreign keys (1005)

Hallo zusammen,

bin ziemlich neu in mySQL.

Warum bekomme ich den Fehler 1005 (errno: 150) beim Erstellen der sells-table? Ich habe die Doku hoch- und runtergelesen, gegoogelt und rumprobiert. Die Tabellen werden neu direkt nacheinander unter mySQL 4.0 erstellt:

create table kunden2(
 id int(4) not null auto_increment,
 name varchar(64),
PRIMARY KEY (id)
) TYPE=innodb

create table products2(
id int(4) not null auto_increment,
name varchar(64),
PRIMARY KEY (id)
) TYPE=innodb

CREATE TABLE sells(
 id int(4) not null auto_increment,
  prod int(4) not null,
  kundeint(4) not null,
  FOREIGN KEY ( kunden_id ) REFERENCES kunden2( id ) ,
  FOREIGN KEY ( product_id ) REFERENCES products2( id ) ,
  PRIMARY KEY ( id )
) TYPE = INNODB

Danke für Tips,

Michael

  1. Hello,

    FOREIGN KEY ( kunden_id ) REFERENCES kunden2( id ) ,
      FOREIGN KEY ( product_id ) REFERENCES products2( id ) ,

    ich mag falsch liegen, aber irgendwas passt mir da nicht so richtig zusammen. Entweder ist kunden_id der Name des Schlüssels, dann fehlt die Spalte, oder kunden_id ist der Name der FK-Spalte, dann fehlt sie (es gibt nur kunde).

    MfG
    Rouven

    --
    -------------------
    sh:| fo:} ch:? rl:( br:& n4:{ ie:| mo:} va:) js:| de:] zu:| fl:( ss:) ls:& (SelfCode)
    Vegetarier essen meinem Essen das Essen weg.
    1. Hi,

      ich mag falsch liegen, aber irgendwas passt mir da nicht so richtig zusammen. Entweder ist kunden_id der Name des Schlüssels, dann fehlt die Spalte, oder kunden_id ist der Name der FK-Spalte, dann fehlt sie (es gibt nur kunde).

      Du liegst richtig, ich hatte noch ein Reply nachgeschoben und das darin korrigiert, wo ist's denn??

      Das wäre natürlich auch ein Problem, war aber nicht die Ursache da es im verwendeten mySQL statement richtig angegeben war.

      Danke & Gruß,

      Micha

    2. ...hm, seltsam, ein Posting von mir fehlt wohl.

      Das Problem lag im vergessenen Index über die beiden foreign keys.

      Danke & Gruß,

      Micha

  2. CREATE TABLE sells(
    id int(4) not null auto_increment,
      prod int(4) not null,
      kundeint(4) not null,
      FOREIGN KEY ( kunden_id ) REFERENCES kunden2( id ) ,
      FOREIGN KEY ( product_id ) REFERENCES products2( id ) ,
      PRIMARY KEY ( id )
    ) TYPE = INNODB

    Hi,

    da sind einige Fehler...

    Fehler1:

    FOREIGN KEY ( kunden_id ) REFERENCES kunden2( id )

    Korrektur1:

    FOREIGN KEY ( kunde_id ) REFERENCES kunden2( id )

    • Dein Key heisst "kunde_id" und nicht "kunden_id"

    Fehler2:

    FOREIGN KEY ( product_id ) REFERENCES products2( id )

    Korrektur2:

    FOREIGN KEY ( prod ) REFERENCES products2( id )

    • Dein Key heisst "prod" und nicht "product_id"

    Fehler3:

    kundeint(4) not null,

    Korrektur3:

    zwischen kunde und int(4) muss ein space sein.

    Probiers mal aus jetzt.

    Gruss