Vinzenz Mai: MySQL, Foreign Key, Error 1005/Errno 150

Beitrag lesen

Hallo Robert

ich versuche gerade, in MySQL ( version: 4.1.10a-nt ) zwei Tabellen zu verknüpfen.

CREATE TABLE IF NOT EXISTS categories
(
    id      INT(3) ZEROFILL NOT NULL AUTO_INCREMENT PRIMARY KEY,
    name     VARCHAR(20) NOT NULL
) TYPE=INNODB;

Wenn Du einen bestimmten Namen für Deinen Index haben möchtest, dann solltest Du diesen im CREATE-TABLE-Statement angeben:

CREATE  TABLE  IF  NOT  EXISTS categories
(
    id INT( 3  ) ZEROFILL NOT  NULL  AUTO_INCREMENT,
    name VARCHAR( 20  )  NOT  NULL ,
    PRIMARY KEY id( id )
) TYPE  = INNODB;

Nun sollte die nächste Anweisung erfolgreich ausgeführt werden können.
Vergiss bitte nicht vorher, die vorhandene Tabelle zu löschen :-)

CREATE TABLE IF NOT EXISTS places
(
    id          INT(6) ZEROFILL NOT NULL AUTO_INCREMENT PRIMARY KEY,
    name        VARCHAR(100) NOT NULL,
    category    INT(3) NOT NULL,
    INDEX (category),
    FOREIGN KEY (category) REFERENCES categories (id)
) TYPE=INNODB;

Erfolgreich getestet unter MySQL 3.23.58

[... ellenlange Zitate aus dem Handbuch ...]
Bitte gib' in Zukunft nur die relevanten Links an, zitiere ggf. ein, zwei Sätze mit Angabe der Quelle (URL und evtl. Abschnitt).

Freundliche Grüße

Vinzenz