【发布时间】:2016-03-24 21:00:18
【问题描述】:
我已经创建了这个表
CREATE TABLE `Overview` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`ops` varchar(11) NOT NULL,
`date` date NOT NULL,
`title` text,
`beneficiary_Institution` varchar(100) DEFAULT NULL,
`description` longtext,
`public_Expenditure_Budget` decimal(14,2) DEFAULT NULL,
`payments` decimal(14,2) DEFAULT NULL,
`completition_percent` int(11) DEFAULT NULL,
`start` varchar(11) DEFAULT NULL,
`finish` varchar(11) DEFAULT NULL,
`sub_projects` int(11) DEFAULT NULL,
`public_aid` decimal(14,2) DEFAULT NULL,
`operational_programme_number` int(11) DEFAULT NULL,
`operational_programme` varchar(100) DEFAULT NULL,
`title_ops` text,
`map_coordinates` varchar(15000) DEFAULT NULL,
PRIMARY KEY (`id`,`ops`,`date`)
)ENGINE=InnoDB;
我尝试创建一个具有外键的表
CREATE TABLE `Proposal_Body` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`ops` VARCHAR(11) NULL,
`title` VARCHAR(100) NULL,
`representative` VARCHAR(45) NULL,
`address` VARCHAR(45) NULL,
`email` VARCHAR(45) NULL,
PRIMARY KEY (`id`),
INDEX `fk_Proposal_Body_1_idx` (`ops` ASC),
CONSTRAINT `fk_Proposal_Body_1`
FOREIGN KEY (`ops`)
REFERENCES `espanew`.`Overview` (`ops`)
ON DELETE NO ACTION
ON UPDATE NO ACTION
)ENGINE=InnoDB;
这个和我尝试的任何其他尝试都会给我这个错误
ERROR 1005 (HY000): 无法创建表 'Espa_Projects_Eng.Proposal_Body'(错误号:150)
我知道这是一个外键问题,但我看不出原因。这段代码来自 mysql 客户端,我使用 ui 进行创建,没有手动输入命令,所以它应该可以工作。
非常感谢
【问题讨论】:
-
您是否检查过您的第一个表,即“概览”是否存在于 DB 中?
-
您可以参考给定的积分here。这可能会对您有所帮助。
-
我非常确定我可以有一个外键指向一个组合键的 PK!在我的机器上使用相同的mysql,它确实在一段时间前工作了。不知道从那以后我是否改变了一些东西,但现在看来它不允许我进行这样的连接
标签: mysql