我尝试将其转换为mysql:
在A和B上创建第一个包含A,B,C列和复合主键的表。 创建第二个表A,B,D,E列,其中A,B,D为主键,当然A,B从第一个表引用为外来。
我使用mysql workbench创建列,添加键和foreigns约束,但是当我尝试应用时,我收到此错误:
错误1215:无法添加外键约束
问题是我不知道我的设计到底出了什么问题。
你能帮助我吗?
答案 0 :(得分:0)
您的问题是,您在第二个表格中有(A, B)
个对,而您的第一个表中没有匹配项。
运行:
select secondTable.A, secondTable.B
from secondTable
where not exists (select 1
from firstTable
where firstTable.A = secondTable.A and firstTable.B = secondTable.B);
使用此查询,您会在A
中找到与B
中的任何记录都不匹配的secondTable
,firstTable
值。
为了能够创建foreign key
,您需要从secondTable
或insert
匹配into
firstTable
中删除这些记录。