问题描述
如何检查表是否具有唯一键? 对于一个键列,它的工作原理是:
t:([k1:1 2 3]d:10 20 30);
@[{update `u#k1 from t};`;{"Err: ",x}]
但是如何对多个键列执行相同的操作?
t:([k1:1 2 2; k2:`a`b`b]d:10 20 30)
解决方法
下面的示例应该起作用,假设您正在寻找唯一的键值作为向量,则下面的示例将给出布尔型的是或否
t:([k1:1 2 2; k2:`a`b`b]d:10 20 30)
{count[x]~count distinct x} flip value flip key t
如果您要询问每个键列是否唯一,则可以执行以下操作
t:([k1:1 2 2; k2:`a`b`b]d:10 20 30)
@[`u#;flip value flip key t;'"not unique"]