我在database
创建新表时遇到问题。我已经看到它返回的错误代码与Foreign Key
约束有关。
我检查过以确保新表格中data type
的{{1}}与另一个表格中foreign key
的{{1}}相匹配。它们都是data type
。
但是我仍然收到错误。我错过了什么吗?这是用于创建新表的primary key
脚本:
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;
primary key
将是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;
Foreign Key
答案 0 :(得分:1)
问题是你的create语句的最后一行:
ENGINE=INNODB DEFAULT CHARSET=utf8;
您将ald表中的MYISAM
与新表中的INNODB
混合。
这不起作用。
将新表格中的引擎更新为MYISAM
,然后就可以了。