如何在MySQL中强制执行唯一约束?

编程入门 行业动态 更新时间:2024-10-20 09:23:27
本文介绍了如何在MySQL中强制执行唯一约束?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我定义了一个MySQL表:

I have a MySQL table defined:

File -------------------------- ID int(11) PK name varchar(100) customerId int(11) FK isPrimaryImage tinyint(1) ....

我在这里阅读到MySQL不支持带有WHERE条件的UNIQUE CONSTRAINT.对于每个 customerId ,我们只有一个 primaryImage = 1 .

I've read here that MySQL doesn't support a UNIQUE CONSTRAINT with a WHERE condition. For each customerId we'd have only one primaryImage = 1.

那么我还能采取什么措施来强制执行此约束?

So what else can I do to enforce this constraint?

推荐答案

MySQL完美支持唯一约束.

但是,它不支持部分约束/索引,因此您需要使用NULL而不是0标记非主图像.

It does not support partial constraints/indexes, though, so you would need to mark non-primary images with a NULL instead of 0.

ALTER TABLE file ADD CONSTRAINT ux_file_customer_primary UNIQUE (customerId, isPrimaryImage)

您可以在isPrimaryImage中插入任意数量的NULL值,但每个客户只能插入一个非空值.

You can insert arbitrary number of NULL values into isPrimaryImage but only one non-null value per customer.

更多推荐

如何在MySQL中强制执行唯一约束?

本文发布于:2023-10-14 22:08:21,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1492355.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:强制执行   如何在   MySQL

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!