MySQL组合在FK上是唯一的

时间:2010-04-07 10:05:32

标签: mysql foreign-keys constraints mysql-error-1062

我想在mysql中实现以下约束:

create table TypeMapping(
    ...
    constraint unique(server_id,type_id),

    constraint foreign key(server_id) references Server(id),

    constraint foreign key(type_id) references Type(id)
);

当我发出一个会破坏约束的插入/更新时,会抛出'ERROR 1062(23000):关键'server_id'的重复条目'3-4'。这种约束是否可能?如果是这样的话?谢谢。

1 个答案:

答案 0 :(得分:3)

是的,这完全有效。确保您了解复合唯一约束只会在您尝试在TypeMapping中插入新行时中断,其中另一行具有相同的server_id {{1}已经存在。