验证键控 table 是否具有唯一键

Validate if a keyed table have unique keys

如何检查 table 是否有唯一键? 对于一个键列,它有效:

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"]