繁体   English   中英

MYSQL:无法添加外键约束

[英]MYSQL: Cannot add foreign key constraint

我已经阅读了很多关于这个问题的问题,但似乎没有解决我的问题。

基本上,我收到以下错误:

Error Code: 1215. Cannot add foreign key constraint

在尝试执行以下查询时:

CREATE TABLE IF NOT EXISTS Privacy (
    Biography varchar(20),
    BirthDate varchar(20),
    Email varchar(20),
    Location varchar(20),
    RealName varchar(20),
    Sex varchar(6),
    User varchar(255),
    PRIMARY KEY (User),
    FOREIGN KEY (User) REFERENCES Users(Username)
    ON DELETE SET NULL ON UPDATE CASCADE
) CHARACTER SET utf8;

我以为我在同一列上没有主键和外键,但后来我做了一些搜索,发现它完全没问题。 也许我只是以错误的方式做到这一点。

编辑:

这是Users表:

CREATE TABLE IF NOT EXISTS Users ("
    Avatar varchar(255),
    Biography text,
    Birth_Date date,
    Email varchar(255),
    Location varchar(255),
    Password varchar(20),
    Profile_Views int(11),
    Real_Name varchar(255),
    Reputation int(11),
    Signup_Date datetime,
    Username varchar(255),
    PRIMARY KEY (Username)
) CHARACTER SET utf8;

原因是ON DELETE SET NULL ON UPDATE CASCADE行。

如果您使用RESTRICT MySQL将很高兴。

这是有道理的,因为一旦从Users表中删除用户,就无法使主键为NULL。

编辑:您可以使用ON DELETE CASCADE因为评论中指出了它,然后它将从隐私中删除整行。

CREATE TABLE IF NOT EXISTS Privacy (
Biography varchar(20),
BirthDate varchar(20),
Email varchar(20),
Location varchar(20),
RealName varchar(20),
Sex varchar(6),
User varchar(255),
PRIMARY KEY (User),
FOREIGN KEY (User) REFERENCES Users(User)
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM