我试图在mySQL
中为many to many
关系创建表。这是sql
它:试图为多对多关系创建表时mySQL
CREATE TABLE `directoryprogrammetags` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`directoryprogramme_id` INT(11) NOT NULL,
`tag_id` INT(11) NOT NULL,
`description` TEXT,
`created` DATETIME DEFAULT NULL,
PRIMARY KEY (`id`),
FOREIGN KEY (`directoryprogramme_id`) REFERENCES directoryprogramme(id),
FOREIGN KEY (`tag_id`) REFERENCES tag(id)
) ENGINE=INNODB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8;
但我收到此错误:
Error Code: 1005
Can't create table 'mytestdatabase.directoryprogrammetags' (errno: 150)
的外键引用的表是:
CREATE TABLE `directoryprogramme` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(250) NOT NULL,
`description` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=1200 DEFAULT CHARSET=utf8
和
CREATE TABLE `tag` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(200) DEFAULT NULL,
`description` text,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8
我读过som它可能是与外键不一致的地方,但我不确定。任何人都可以帮我解决这个问题吗?
也许这将有助于:http://stackoverflow.com/questions/16227199/mysql-errno-150 – 2014-11-05 16:05:34