MYSQL中条件的唯一约束

har*_*njd 5 mysql postgresql

在 postgres 中,我们定义了一个约束,它本质上允许我们将表中具有特定值的条目数限制为 1。我们创建了这个约束:

在 list_group(visitor_uid) 上创建唯一索引 list$default$uk 其中 list_type = 'default';

这意味着仅当 list_type='default' 时才应用唯一约束,因此表中每个访问者只能有一个“默认”列表。

看起来 MySql 不支持唯一约束上的附加位置。MySQL 的数据库模式是否有另一种方法来支持这一点?

cod*_*nix 3

MYSQL 不支持此类约束。

您应该使用存储过程来插入数据,这样您就可以进行一些检查和验证。

为什么不将默认值定义为必须将 1 作为主键?这样,对 pk 的正常唯一约束就足够了。

如果没有什么适合您,您也可以考虑更改您的数据模型。