【问题标题】:MySQL composite unique on FK'sFK 上独一无二的 MySQL 组合
【发布时间】:2011-02-05 04:42:21
【问题描述】:

我想在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)
);

当我发出会破坏约束的插入/更新时,这会引发“错误 1062 (23000): Duplicate entry '3-4' for key 'server_id'”。这种类型的约束甚至可能吗?如果有怎么办?谢谢。

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 是的,我没有想到这实际上是预期的行为。 :S
    猜你喜欢
    • 2011-09-27
    • 2013-06-04
    • 2010-09-24
    • 2014-10-19
    • 1970-01-01
    • 2019-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多