[英]mysql - Not able to create table error in foreign key constraint
CREATE TABLE IF NOT EXISTS `nm`.`list_activities` (
`activity_id` INT NOT NULL COMMENT '',
`activity_name` VARCHAR(45) NULL COMMENT '',
`activity_type_id` INT NOT NULL COMMENT '',
PRIMARY KEY (`activity_id`, `activity_type_id`) COMMENT '',
CONSTRAINT `fk_list_activities_log`
FOREIGN KEY (`activity_id`)
REFERENCES `nm`.`log` (`activity_id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION)
ENGINE = InnoDB;
CREATE TABLE IF NOT EXISTS `nm`.`log` (
`date_id` INT NOT NULL COMMENT '',
`activity_id` INT NOT NULL COMMENT '',
PRIMARY KEY (`date_id`, `activity_id`) COMMENT '')
ENGINE = InnoDB;
无法创建list_activities
表,它显示错误消息
错误代码:1215。无法添加外键约束
在MySQL中
这是因为您具有复合主键,并且仅在键的一列上创建FK,所以只创建了部分功能依赖项。
PRIMARY KEY (`date_id`, `activity_id`)
FOREIGN KEY (`activity_id`)
REFERENCES `nm`.`log` (`activity_id`)
您必须创建一个引用两个键列的FK才能解决此问题。 将您的FK定义更改为
FOREIGN KEY (`activity_id`, `activity_type_id`)
REFERENCES `nm`.`log` (`activity_id`, `date_id`)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.