如何在MySQL中强制实施唯一约束?

31 浏览
0 Comments

如何在MySQL中强制实施唯一约束?

我有一个定义好的MySQL表:

File
--------------------------
ID int(11) 主键
name varchar(100)
customerId int(11) 外键
isPrimaryImage tinyint(1)
....

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

那么我还能做什么来强制执行这个约束?

0
0 Comments

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

MySQL完全支持唯一约束。但是,它不支持部分约束/索引,因此需要使用NULL而不是0来标记非主要图像。

可以使用以下代码向file表添加唯一约束:

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

isPrimaryImage字段中,可以插入任意数量的NULL值,但每个客户只能有一个非空值。

以上就是在MySQL中如何强制执行唯一约束的原因和解决方法。

0