在 EdgeDB 中定义唯一索引

Define a unique index in EdgeDB

如何在EdgeDB中定义唯一索引?

对于简单的属性,您可以添加 constraint exclusive,这会隐式创建一个唯一索引。

required property name -> str {
    constraint exclusive;
}

但是您不能将 constraint exclusive 添加到明确定义的索引。如何将这样的索引标记为唯一?

您可以将 constraint exclusive on (...) 添加到包含类型,其中 ... 是任意标量表达式。为了保证多个属性的唯一性,应该是元组(x, y):

type User {
    property first_name -> str;
    property last_name -> str;
    constraint exclusive on ((.first_name, .last_name));
}

独占 约束隐式创建索引。

source