您能告诉我如何为属性添加唯一性限制,以便只能输入一个 NULL 值吗? 在这种情况下,该限制对于 id 的 NULL 值不起作用。 已检查最新版本 4.2 和 5.0。
以下是文档中的示例代码:
CLASS Book 'Book;
id 'Number' = DATA INTEGER (Book);
book 'Book' (INTEGER i) = GROUP AGGR Book b BY id(b);
最佳答案
对于任何类型的GROUP运算符,如果 BY 子句的至少一个值是 NULL,则结果始终为 NULL。因此,GROUP 运算符 AGGR 创建的标准限制不会考虑空 id 值。
在这种情况下要检查多个 NULL 值,您必须创建一个单独的 CONSTRAINT :
CONSTRAINT (GROUP SUM 1 IF b IS Book AND NOT id(b)) > 1
MESSAGE 'Multiple empty values are not allowed';
关于unique - lsFusion:属性 NULL 的唯一性限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76059414/