gpt4 book ai didi

MySQL:错误 1022 (23000):无法写入;表 '#sql-2b8_2' 中的重复键

转载 作者:IT老高 更新时间:2023-10-29 00:05:19 24 4
gpt4 key购买 nike

我要实现一个书店数据库。我创建了 bookauthorpublisher 表。我想建立以下两种关系。

Book is written by Author.
Book is published by Publisher.

为了实现这些关系,我写了一些 SQL 语句,比如:

create table book(
ISBN varchar(30) NOT NULL,
title varchar(30) not null,
author varchar(30) not null,
stock Int,
price Int,
category varchar(30),
PRIMARY KEY ( ISBN )
);

create table author(
author_id int not null auto_increment,
author_name varchar(15) NOT NULL,
address varchar(50) not null,
ISBN varchar(30) not null,
primary key (author_id)
);

alter table author add constraint ISBN foreign key (ISBN) references book (ISBN);

create table publisher(
publisher_id int not null auto_increment,
publisher_name varchar(15) NOT NULL,
address varchar(50) not null,
ISBN varchar(30) not null,
primary key (publisher_id)
);

alter table publisher add constraint ISBN foreign key (ISBN) references book (ISBN);

当 MySQL shell 执行最后一个 alter 语句时,我得到了这个错误。

ERROR 1022 (23000): Can't write; duplicate key in table '#sql-2b8_2'

原来外键不能指定两次吗?有什么问题?提前谢谢你。

最佳答案

您将获得 duplicate key error因为已经有一个名为 ISBN 的约束根据您的第一个出现在数据库中 alter声明 author表格

alter table author add constraint ISBN foreign key (ISBN) references book (ISBN);

尝试为 Publisher 中的约束使用不同的名称表格

alter table publisher add constraint ISBN1 
foreign key (ISBN) references book (ISBN);

关于MySQL:错误 1022 (23000):无法写入;表 '#sql-2b8_2' 中的重复键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23954131/

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