提问者:小点点

MySQL,不断得到错误代码1822并且不知道如何修复它


下面是出现问题的代码:

CREATE TABLE User_Account 
(
    Account_ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
    Account_Name VARCHAR(50) NOT NULL,
    Account_Email VARCHAR(50) NOT NULL,
    Software_Used VARCHAR(50) NOT NULL,
    Years_Of_Experiance YEAR NOT NULL,
    Account_Rank INT NOT NULL,
    Account_Status VARCHAR(50) NOT NULL,
    Followers INT NOT NULL,
    PRIMARY KEY (Account_ID)
);

CREATE TABLE User_Tracking
(
    Account_Status VARCHAR(50) NOT NULL,
    Time_Online TIME NOT NULL,
    Times_Logged_On INT NOT NULL,
    PRIMARY KEY (Account_Status),
    INDEX (Account_Status), FOREIGN KEY (Account_Status) REFERENCES User_Account(Account_Status)
);

CREATE TABLE Posts
(
    Post_ID INT NOT NULL,
    Title_Of_Post VARCHAR(50) NOT NULL,
    Creator_Name VARCHAR(50) NOT NULL,
    Date_Created DATE NOT NULL,
    Post_Details VARCHAR(200) NOT NULL,
    Likes INT NOT NULL, 
    PRIMARY KEY (Post_ID),
    INDEX (Creator_Name), FOREIGN KEY (Creator_Name) REFERENCES User_Account(Account_Name),
    INDEX (Likes), FOREIGN KEY (Likes) REFERENCES Likes(Like_ID)
);

CREATE TABLE Likes
(
    Like_ID INT NOT NULL,
    Account_Name VARCHAR(50) NOT NULL,
    Date_Liked DATE NOT NULL,
    PRIMARY KEY (Like_ID),
    INDEX (Account_Name), FOREIGN KEY (Account_Name) REFERENCES User_Account(Account_Name)
);

我一直得到错误:错误代码:1822。 未能添加外键约束。 引用的表“USER_ACCOUNT”中缺少约束“POSTS_IBFK_1”的索引

请尽量保持语言简单,因为我是一个新手,还在学习SQL和MySQL工作台


共1个答案

匿名用户

更具体地说,缺少的索引位于user_account.account_name上,请参阅https://dev.mysql.com/doc/refman/8.0/en/create-table-foreign-keys.html