如果在email上创建唯一索引,并在userId上对表进行分区,那么email列的惟一性强制将在单个分区内执行。
我们的模式有一个USER表…
USER(
userId,
firstname,
lastname,
email)
,我们要确保所有用户都有唯一的电子邮件地址。是否有可能在voldb中创建一个唯一的索引来强制执行此约束?
voldb支持主键索引(总是唯一的)以及可以定义为唯一的二级索引。
对于特定的表,您有两种选择来强制email列的唯一性:
- 定义USER表为复制表。
- 在email列上为USER表分区
voldb为主键提供隐式索引。例如,如果你分配userID为主键,那么userID将是唯一的(因为voldb的隐式索引在主键上分配),但要使电子邮件列唯一,你必须显式地在电子邮件列上分配约束unique。类似地,假设您正在对一个表进行分区,并且在列userID上进行分区,那么为了强制email在每个分区中是唯一的,您应该显式地在email列上分配'ASSUMEUNIQUE'约束。