我有一个具有以下结构的表 A
Contract_ID Parent_Contarct_ID Client_ID
--------------------------------------------------
CON_001 CON_001 CLNT_20001
CON_002 CON_002 CLNT_20002
CON_003 CON_003 CLNT_20003
CON_004 CON_004 CLNT_20004
这里的 Contract_ID 有重复项,因此我无法创建主键或唯一键。
但是我需要在其他一些表中引用这个contract_ID。如果我不创建外键,如何引用?
我使用的是mysql
最佳答案
我认为您对数据缺乏基本的了解。有重复项是什么意思?如果您确实认为合约 ID 应该是唯一的,但事实并非如此,那么您就会遇到数据问题(以及放置该数据的任何软件中的错误)。如果重复可以,那意味着什么?
当然,您可以添加一个身份和链接,但这并不能解决您的实际问题 - 您最终会回到这里询问为什么您为给定的契约(Contract)返回太多行!
因此,第一步是了解您的数据。然后根据需要进行清洁。只有这样,您才能将所有 PK 和 FK 约束放在正确的位置,并且使任何列都有意义。
关于mysql - 外键有重复且没有主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19354018/