您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

MySQL的``外键约束不正确地形成了''。

MySQL的``外键约束不正确地形成了''。

无法将外键添加到未建立索引的列中

MysqL要求在外键和引用键上建立索引,以便外键检查可以快速进行,而无需进行表扫描。

尽管这是MysqL文档,但可能与在您的MariaDB版本上失败相同。

您可以通过简单地向表中的Start_Time添加索引来解决此问题Showings

但是,在执行此操作之前,请考虑您到底想使用此外键做什么。创建表时,您引用Start_Time的是Showings表中的ANY ,而不是任何特定的显示

根据您的表设计,您Showings很可能想要实现对表主键的外键。

CREATE TABLE Reservation (
    Movie_Title varchar(255) NOT NULL,
    Theatre_No int NOT NULL,
    Complex_Name varchar(255) NOT NULL,
    Start_Time datetime NOT NULL,
    CustomerID int NOT NULL,
    Number_of_Tickets int NOT NULL,
    PRIMARY KEY (Movie_Title, Theatre_No, Complex_Name, Start_Time, CustomerID),
    FOREIGN KEY (Movie_Title) REFERENCES Showings(Movie_Title),
    FOREIGN KEY (Theatre_No) REFERENCES Showings(Theatre_No),
    FOREIGN KEY (Complex_Name) REFERENCES Showings(Complex_Name),
    FOREIGN KEY `Showing` (Movie_Title, Theatre_No, Complex_Name, Start_Time) REFERENCES Showings(Movie_Title, Theatre_No, Complex_Name, Start_Time),
    FOREIGN KEY (CustomerID) REFERENCES Customer(Account_Number)
);
MySQL 2022/1/1 18:30:46 有453人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶