我这里设置mysql外键关联多对多的情况,设置中间表时为什么我创建外键时出错,出现
出现该错误,请教大家,感谢
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);