我有 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
错误。
为什么?两列的类型相同。
如使用外键约束文档中所述:
外键关系涉及保存 中心数据值和具有相同值指向的子表 回到它的父级。
确保两个表(Profile
和User
)中的列reqid
包含相同的值。
User
是一个关键字,应该像下面这样进行转义。此外,在执行此语句之前User
请确保表已经存在
ALTER TABLE Profile ADD CONSTRAINT fk_req
FOREIGN KEY (reqid ) REFERENCES `User` ( reqid ) ON DELETE CASCADE;