使用外键创建表时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