我有2个表:(使用MySQL
)
User
和Profile
。
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
错误。
那是为什么?这两列的类型相同。
答案 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
包含相同的值。