Vinzenz Mai: errno 150: Problem mit foreign key

Beitrag lesen

Hallo,

beim Anlegen folgender Tabellen bekomme ich einen errno 150 (also ein Problem mit dem foreign key):

mit folgenden Anweisungen (PHP-Kram entfernt)

CREATE TABLE IF NOT EXISTS land (

Land_ID int(11) NOT NULL auto_increment,
  Land_Name text NOT NULL,
  Landessprache text,
  Waehrung text,
  PRIMARY KEY  (Land_ID)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE utf8_unicode_ci AUTO_INCREMENT=8

  
»~~~sql
CREATE TABLE IF NOT EXISTS `region` (  

>   `Region_ID` int(11) NOT NULL auto_increment,  
>   `Region_Name` text NOT NULL,  
>   `Region_Beschreibung` text,  
>   `Region_Sehenswuerdigkeiten` text,  
>   `Land_ID` int(11) NOT NULL,  
>   PRIMARY KEY  (`Region_ID`),  
>   INDEX (`Land_ID`),  
>   CONSTRAINT `fk_Land` FOREIGN KEY (`Land_ID`) REFERENCES `Land` (`Land_ID`) ON DELETE CASCADE ON UPDATE CASCADE  
> ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE utf8_unicode_ci AUTO_INCREMENT=8

kann ich Dein Problem mit MySQL 5.0.51 nicht nachvollziehen.
Die Tabellen lassen sich problemlos anlegen, sowohl mit MySQL-Query-Browser
als auch mit dem mysql-Kommandozeilenclient.

Frage:
Warum verwendest Du für Deine Spalten den Datentyp TEXT statt VARCHAR(geeignete Länge)?

Freundliche Grüße

Vinzenz