gpt4 book ai didi

mysql - 尽管 key 正确,但仍获取 "Cannot add foreign key constraint"

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

我有这张表:

CREATE TABLE `a` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`location` varchar(255) NOT NULL,
`st` varchar(255) NOT NULL,
PRIMARY KEY (`id`,`st`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

我正在尝试添加第二个表,该表的外键引用上面的 st:

CREATE TABLE b (
id int(11) NOT NULL AUTO_INCREMENT,
name varchar(255) NOT NULL,
desc varchar(999) NOT NULL,
var_str varchar(255) NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (var_str) REFERENCES a(st)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

每次运行上面的查询时,我都会得到:无法添加外键约束。我在这里缺少什么?

最佳答案

如果我没记错的话,为了声明 FK 约束,引用的列必须是主键或具有 UNIQUE 约束。因此,您可以更改表a的定义以添加UNIQUE约束:

CREATE TABLE `a` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`location` varchar(255) NOT NULL,
`st` varchar(255) NOT NULL UNIQUE,
PRIMARY KEY (`id`,`st`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

关于mysql - 尽管 key 正确,但仍获取 "Cannot add foreign key constraint",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43035245/

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