光明圣火 2021-10-25 14:29 采纳率: 70.6%
浏览 19

mysql数据库外键关联错误

我这里设置mysql外键关联多对多的情况,设置中间表时为什么我创建外键时出错,出现

img


出现该错误,请教大家,感谢

CREATE DATABASE IF NOT EXISTS longcaiuserbook
DEFAULT CHARSET utf8
DEFAULT COLLATE utf8_bin;

USE longcaiuserbook;


#建立用户表
CREATE TABLE Buser
(
    Buserid INT(10) PRIMARY KEY,
    Busername VARCHAR(10)
)COMMENT '用户表';
SELECT * FROM Buser;
INSERT INTO Buser(Buserid,Busername)VALUES(01,"张三"),(02,"李四"),(03,"王五");


#建立书籍表
CREATE TABLE Book
(
    Bookid INT(10) PRIMARY KEY,
    Bookname VARCHAR(10)
)COMMENT '书籍表';
SELECT * FROM Book;
INSERT INTO Book(Bookid,Bookname)VALUES(1,"楚门的世界"),(2,"饥饿游戏"),(3,"移动迷宫"),(4,"香草的天空");





#建立中间表
 CREATE TABLE BU
 (
        Buname VARCHAR(10),
        Boname VARCHAR(10)
 )COMMENT '用户书籍中间表';
 SELECT * FROM BU;
 DROP TABLE BU;
#2、让Busername,Bookname的组合作为BU表的主键值
 ALTER TABLE BU ADD CONSTRAINT pk_BU_Busername_Bookname PRIMARY KEY(Buname,Boname); 
#3、为了确保中间表中主键字段一定能找到对应的记录所以各自条件外键约束
 ALTER TABLE BU ADD CONSTRAINT fk_BU_Busername FOREIGN KEY(Buname) REFERENCES Buser(Busername);
 ALTER TABLE BU ADD CONSTRAINT fk_BU_Bookname FOREIGN KEY(Boname) REFERENCES Book(Bookname);

  • 写回答

1条回答 默认 最新

  • oldmao_2000 人工智能领域新星创作者 2021-10-26 10:47
    关注

    检查一下是不是由于重复执行导致外键创建重复了

    评论

报告相同问题?

问题事件

  • 创建了问题 10月25日

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题