我有一个以varchar
数据类型作为主键的表。我正试图与这种多对多关系的联结表建立关系。我一直收到错误
ALTER TABLE语句与外键约束冲突 关系名称。
我不知道这笔交易是什么。由于我已将该字段指定为主键并且已被接受,因此这意味着没有欺骗。外键和主键都具有相同的数据类型,长度相同。两者都不允许空值。问题还有什么呢?
答案 0 :(得分:4)
最有可能的是,联结表中的值在主表中不存在,这会阻止您创建外键关系。
尝试使用类似的内容找到它:
SELECT j.ICD_FK
FROM ICD_Junction j
LEFT JOIN ICD_text t
ON j.ICD_FK = t.ICD_ID
WHERE t.ICD_ID IS NULL;
答案 1 :(得分:1)
仅仅因为没有空值或重复并不意味着您没有违反外键关系。
我猜测FK列中包含PK列中不存在的值。使用LEFT OUT JOIN WHERE NULL进行检查。