gpt4 book ai didi

mysql - 为什么我在尝试创建此表时不断收到外键错误?

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

我正在尝试为数据库创建表。一切都很好,除了当我尝试创建最后一个连接表时,它一直给我一个外键错误“使用外键约束创建表'refactor_test/ads_categories'失败。引用的表中没有出现引用列的索引作为第一列。”

以下是我用于创建每个表的参数,不断抛出错误的是 ads_categories:

    create table ads
(
id int unsigned not null auto_increment,
user_id int unsigned not null,
title varchar(100) not null,
description varchar(500),
primary key (id),
foreign key (user_id) references refactor_test.users (id)
);

create table users
(
id int unsigned not null auto_increment,
username varchar(25) not null,
password varchar(100) not null,
email varchar(40) not null,
primary key (id)
);

create table categories
(
id int unsigned auto_increment not null,
category varchar(50) not null,
category_id int unsigned not null,
primary key (id)
);

create table ads_categories
(
id int unsigned auto_increment not null,
ad_id int unsigned not null,
ad_category int unsigned not null,
primary key (id),
foreign key (ad_id) references refactor_test.ads (id),
foreign key (ad_category) references refactor_test.categories (category_id)
);

最佳答案

外键链接到目标表的主键。此处,您尝试链接到 categories 表上的 category_id:

foreign key (ad_category) references refactor_test.categories (category_id)

但这不是该表的主键。 id 是:

foreign key (ad_category) references refactor_test.categories (id)

(在 categories 表中同时拥有 idcategory_id 实际上非常令人困惑。我怀疑那里存在设计错误。)

关于mysql - 为什么我在尝试创建此表时不断收到外键错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54726746/

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