# Types
> **NOTE**
>
> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
## Assets10+
type Assets = Asset[]
Indicates an [Asset](arkts-apis-data-relationalStore-i.md#asset10) array.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
| Type | Description |
| ------- | -------------------- |
| [Asset](arkts-apis-data-relationalStore-i.md#asset10)[] | Array of assets. |
## ValueType
type ValueType = null | number | string | boolean | Uint8Array | Asset | Assets | Float32Array | bigint
Defines the types of the value in a KV pair. The type varies with the parameter function.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
| Type | Description |
| ------- | -------------------- |
| null10+ | Null. |
| number | Number. |
| string | String. |
| boolean | Boolean.|
| Uint8Array10+ | Uint8 array. |
| Asset10+ | [Asset](arkts-apis-data-relationalStore-i.md#asset10).
If the value type is Asset, the type in the SQL statement for creating a table must be ASSET.|
| Assets10+ | [Assets](#assets10).
If the value type is Assets, the type in the SQL statement for creating a table must be ASSETS.|
| Float32Array12+ | Array of 32-bit floating-point numbers.
If the field type is Float32Array, the type in the SQL statement for creating a table must be floatvector(128).|
| bigint12+ | Integer of any length.
If the value type is bigint, the type in the SQL statement for creating a table must be **UNLIMITED INT**. For details, see [Persisting RDB Store Data](../../database/data-persistence-by-rdb-store.md).
**NOTE**
The bigint type does not support value comparison and cannot be used with the following predicates: **between**, **notBetween**, **greaterThan**, **lessThan**, **greaterThanOrEqualTo**, **lessThanOrEqualTo**, **orderByAsc**, and **orderByDesc**
To write a value of bigint type, use **BigInt()** or add **n** to the end of the value, for example,'let data = BigInt(1234)' or 'let data = 1234n'.
If data of the number type is written to a bigint field, the type of the return value obtained (queried) is number but not bigint.|
## ValuesBucket
type ValuesBucket = Record
Defines the data in the form of a KV pair. **ValuesBucket** cannot be passed across threads using Sendable.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
| Type | Description |
| ---------------- | ---------------------------- |
| Record | Types of the key and value in a KV pair. The key type is string, and the value type is [ValueType](#valuetype).|
## PRIKeyType10+
type PRIKeyType = number | string
Enumerates the types of the primary key in a row of a database table.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
| Type | Description |
| ---------------- | ---------------------------------- |
| number | The primary key is a number.|
| string | The primary key is a string.|
## UTCTime10+
type UTCTime = Date
Represents the data type of the UTC time.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
| Type| Description |
| ---- | --------------- |
| Date | UTC time.|
## ModifyTime10+
type ModifyTime = Map
Represents the data type of the primary key and modification time of a database table.
**System capability**: SystemCapability.DistributedDataManager.RelationalStore.Core
| Type | Description |
| ------------------------------------------------------- | ------------------------------------------------------------ |
| Map<[PRIKeyType](#prikeytype10), [UTCTime](#utctime10)> | The key is the primary key of a row in the database table, and the value is the last modification time of the row in UTC format.|