@key
|
This documentation is not current - it is for TypeDB 2.x, which is no longer supported. View the documentation for TypeDB 3.x: |
The @key keyword is an annotation, that can be used with an
owns statement to specify, that the selected attribute type serves as a key for the subject type.
Syntax
The syntax of a @key statement includes:
-
the
@keykeyword
<type> owns <attribute-type> @key;
Behavior
TypeQL statements with the @key keyword can be used only in Define queries.
The @key keyword adds a unique annotation constraint,
as well as a cardinality constraint of exactly one.
The Cardinality constraint of exactly one means, that a data instance of the subject type must have exactly one (no less and no more) attribute of the given attribute type.
Usage in a schema definition
For this example, use a database with the IAM schema and sample data loaded.
Since in Define and Undefine queries you can’t use variables, both subject and object of an owns statement can only be type labels.
For example, to define that the object type owns the object-type attribute type
with the @key annotation, use:
define
object owns object-type @key;