gpt4 book ai didi

MySQL 错误 150 无法将流派作为外键从流派表分配到专辑表中

转载 作者:行者123 更新时间:2023-11-29 11:39:24 25 4
gpt4 key购买 nike

我不知道为什么错误代码不断弹出。我想要做的是将专辑表中的流派列设置为链接到流派表中的流派列的外键。但每次我尝试在相册的 SQL 命令中将 Genre 实现为外键时,我总是收到错误 150,并且没有指示错误可能是什么。因为两个表中的字段信息是相同的。

我的相册表格背后的代码

CREATE TABLE `Albums` (  
`Album_id` int(6) NOT NULL auto_increment,
`Album_Name` varchar(32) NOT NULL,  
`Number_Of_Tracks` int(11) NOT NULL,  
`Genre` varchar(32) NOT NULL,  
`Track_id` int(6) NOT NULL,  
`Artist_id` int(6) NOT NULL,  
PRIMARY KEY  (`Album_id`),  
KEY `Track_id` (`Track_id`),  
KEY `Artist_id` (`Artist_id`),  CONSTRAINT `Albums_ibfk_1`
FOREIGN KEY (`Track_id`) REFERENCES `Tracks` (`Track_id`),  CONSTRAINT `Albums_ibfk_2`
FOREIGN KEY (`Artist_id`) REFERENCES `Artist` (`Artist_id`))
ENGINE=InnoDB
DEFAULT CHARSET=latin1

类型表背后的代码

CREATE TABLE `Genre` (  
`Genre_id` int(11) NOT NULL auto_increment,
`Genre` varchar(32) NOT NULL,  
PRIMARY KEY  (`Genre_id`))
ENGINE=InnoDB DEFAULT CHARSET=latin1

我在 SQL 上使用的代码尝试使专辑中的流派成为外键

ALTER TABLE Albums
ADD FOREIGN KEY (`Genre`)
REFERENCES Genre (`Genre`)

任何人都可以帮助我了解出了什么问题吗?

最佳答案

如果你输入:

`Genre` int(11) NOT NULL,

KEY `Genre` (`Genre`),

在相册中。然后进行以下工作:

ALTER TABLE Albums
ADD FOREIGN KEY (`Genre`)
REFERENCES Genre (`Genre_id`);

不工作的原因是:

  1. 类型不匹配
  2. 流派不是专辑的关键
  3. 您没有引用 Genres 的主键

请在此处查看详细说明:

Error Code: 1215. Cannot add foreign key constraint (foreign keys)

关于MySQL 错误 150 无法将流派作为外键从流派表分配到专辑表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36065227/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com