SQL:收到“无法添加外键约束”错误

时间:2018-10-29 19:17:22

标签: mysql

我有2个表:(使用MySQLUserProfile

User包含以下列:

Name: reqid
Type: char(36)
Null: NO
Key: PRI

Profile具有:

Name: reqid
Type: char(36)
Null: NO

但是当我尝试执行以下命令时:

ALTER TABLE Profile ADD CONSTRAINT fk_req
    FOREIGN KEY (reqid ) REFERENCES User ( reqid ) ON DELETE CASCADE;

我收到cannot add foreign key constraint错误。

那是为什么?这两列的类型相同。

2 个答案:

答案 0 :(得分:0)

User是一个关键字,应按如下所示进行转义。此外,在执行此语句之前,请确保User表确实存在

ALTER TABLE Profile ADD CONSTRAINT fk_req
    FOREIGN KEY (reqid ) REFERENCES `User` ( reqid ) ON DELETE CASCADE;

答案 1 :(得分:0)

Using FOREIGN KEY Constraints documentation中所述:

  

外键关系涉及一个父表,该表包含   中央数据值,以及具有相同值的子表   回到其父级。

确保两个表(services.AddSingleton(sp => new AppSettingsWrapper(sp.GetService<IOptionsMonitor<AppSettings>>())); reqid)中的列Profile包含相同的值