Docs Menu

Primary Keys - Kotlin SDK

Define a primary key for an object type with the @PrimaryKey annotation:

class Lizard: RealmObject {
@PrimaryKey
val _id: Long = Random.nextLong()
}

Realm Database treats fields marked with the @PrimaryKey annotation as primary keys for their corresponding object schema. Primary keys are subject to the following limitations:

  • You can define only one primary key per object schema.
  • Primary key values must be unique across all instances of an object in a realm. Attempting to insert a duplicate primary key value results in an error.
  • Primary key values are immutable. To change the primary key value of an object, you must delete the original object and insert a new object with a different primary key value.
  • You cannot change the primary key field for an object type after adding any object of that type to a realm.

You can create a primary key with any of the following types:

  • String
  • Byte
  • Char
  • Short
  • Int
  • Long

Optional fields can contain a value of null as a primary key value, but only for one object of a particular type, since each primary key value must be unique. Attempting to insert an object with an existing primary key into a realm results in an error.

Realm Database automatically indexes primary key fields, which allows you to efficiently read and modify objects based on their primary key.

←  Optional Fields - Kotlin SDKRelationships - Kotlin SDK →
Give Feedback
© 2022 MongoDB, Inc.

About

  • Careers
  • Investor Relations
  • Legal Notices
  • Privacy Notices
  • Security Information
  • Trust Center
© 2022 MongoDB, Inc.