Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用外键创建表时MySQL错误号150_Mysql_Sql_Foreign Keys_Constraints - Fatal编程技术网

使用外键创建表时MySQL错误号150

使用外键创建表时MySQL错误号150,mysql,sql,foreign-keys,constraints,Mysql,Sql,Foreign Keys,Constraints,在我的数据库中创建新表时遇到问题。我已经看到它返回的错误代码与外键约束有关 我检查以确保新表中的外键的数据类型与另一个表中的主键的数据类型匹配。它们都是int(11) 然而,我仍然得到一个错误。我错过什么了吗?这是我创建新表的SQL脚本: CREATE TABLE `regular_features` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `name` VARCHAR(200) DEFAULT NULL, `day` VARCHAR(200)

在我的
数据库中创建新表时遇到问题。我已经看到它返回的错误代码与
外键
约束有关

我检查以确保新表中的
外键
数据类型
与另一个表中的
主键
数据类型
匹配。它们都是
int(11)

然而,我仍然得到一个错误。我错过什么了吗?这是我创建新表的
SQL
脚本:

CREATE TABLE `regular_features` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(200) DEFAULT NULL,
  `day` VARCHAR(200) DEFAULT NULL,
  `description` TEXT DEFAULT NULL,
  `programme_id` INT(11) NOT NULL,
  PRIMARY KEY (`id`),
  FOREIGN KEY (`programme_id`) REFERENCES directoryprogramme(id) 
) ENGINE=INNODB DEFAULT CHARSET=utf8;
这是包含
主键的原始表

CREATE TABLE `directoryprogramme` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(250) NOT NULL,
  `broadcast_time` VARCHAR(100) NOT NULL,
  `description` TEXT NOT NULL,
  `days` VARCHAR(150) NOT NULL,
  `contributors` VARCHAR(250) NOT NULL,
  `directorycompany_id` INT(11) NOT NULL,
  `directorycontact_id` VARCHAR(250) NOT NULL,
  `facebook_link` VARCHAR(250) DEFAULT NULL,
  `twitter_link` VARCHAR(250) DEFAULT NULL,
  `wikipedia_link` VARCHAR(250) DEFAULT NULL,
  `web` VARCHAR(250) DEFAULT NULL,
  `imageextension` VARCHAR(10) DEFAULT NULL,
  `type` VARCHAR(20) NOT NULL DEFAULT 'other',
  PRIMARY KEY (`id`)
) ENGINE=MYISAM AUTO_INCREMENT=1161 DEFAULT CHARSET=utf8;

外键
将是
directoryprogram
id
。问题是create语句的最后一行:

ENGINE=INNODB DEFAULT CHARSET=utf8;
您可以将ald表中的
MYISAM
与新表中的
INNODB
混合使用

那不行

将新表中的引擎更改为MYISAM