[英]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.