> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bijection.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Interface: GenericDatabaseWriter<DataModel>

> Not exported: an exported type refers to it.

[sessions](/api/modules/sessions).GenericDatabaseWriter

Not exported: an exported type refers to it.

## Type parameters

| Name | Type |
| :- | :- |
| `DataModel` | extends [`GenericDataModel`](/api/modules/sessions#genericdatamodel) |

## Hierarchy

* `GenericDatabaseReader`\<`DataModel`>

  ↳ **`GenericDatabaseWriter`**

## Properties

### system

• **system**: [`BaseDatabaseReader`](/api/interfaces/sessions.BaseDatabaseReader)\<[`SystemDataModel`](/api/interfaces/sessions.SystemDataModel)>

#### Inherited from

GenericDatabaseReader.system

***

### vars

• **vars**: `Object`

#### Type declaration

| Name | Type |
| :- | :- |
| `commitTs` | [`CommitTsPlaceholder`](/api/classes/sessions.CommitTsPlaceholder) |

## Methods

### get

▸ **get**\<`TableName`, `Fields`>(`table`, `id`, `options`): `Promise`\<`null` | [`SelectedDocument`](/api/modules/sessions#selecteddocument)\<[`DocumentByName`](/api/modules/sessions#documentbyname)\<`DataModel`, `TableName`>, `Fields`>>

#### Type parameters

| Name | Type |
| :- | :- |
| `TableName` | extends `string` |
| `Fields` | extends `string` |

#### Parameters

| Name | Type |
| :- | :- |
| `table` | `TableName` |
| `id` | [`TableKey`](/api/modules/sessions#tablekey)\<`DataModel`, [`NonUnion`](/api/modules/sessions#nonunion)\<`TableName`>> |
| `options` | `Object` |
| `options.select` | readonly `Fields`\[] |

#### Returns

`Promise`\<`null` | [`SelectedDocument`](/api/modules/sessions#selecteddocument)\<[`DocumentByName`](/api/modules/sessions#documentbyname)\<`DataModel`, `TableName`>, `Fields`>>

#### Inherited from

GenericDatabaseReader.get

▸ **get**\<`TableName`>(`table`, `id`): `Promise`\<`null` | [`DocumentByName`](/api/modules/sessions#documentbyname)\<`DataModel`, `TableName`>>

#### Type parameters

| Name | Type |
| :- | :- |
| `TableName` | extends `string` |

#### Parameters

| Name | Type |
| :- | :- |
| `table` | `TableName` |
| `id` | [`TableKey`](/api/modules/sessions#tablekey)\<`DataModel`, [`NonUnion`](/api/modules/sessions#nonunion)\<`TableName`>> |

#### Returns

`Promise`\<`null` | [`DocumentByName`](/api/modules/sessions#documentbyname)\<`DataModel`, `TableName`>>

#### Inherited from

GenericDatabaseReader.get

▸ **get**\<`TableName`>(`id`): `Promise`\<`null` | [`DocumentByName`](/api/modules/sessions#documentbyname)\<`DataModel`, `TableName`>>

#### Type parameters

| Name | Type |
| :- | :- |
| `TableName` | extends `string` |

#### Parameters

| Name | Type |
| :- | :- |
| `id` | [`Id`](/api/modules/sessions#id)\<`TableName`> |

#### Returns

`Promise`\<`null` | [`DocumentByName`](/api/modules/sessions#documentbyname)\<`DataModel`, `TableName`>>

#### Inherited from

GenericDatabaseReader.get

***

### query

▸ **query**\<`TableName`>(`tableName`): [`SelectableQueryInitializer`](/api/interfaces/sessions.SelectableQueryInitializer)\<[`NamedTableInfo`](/api/modules/sessions#namedtableinfo)\<`DataModel`, `TableName`>>

#### Type parameters

| Name | Type |
| :- | :- |
| `TableName` | extends `string` |

#### Parameters

| Name | Type |
| :- | :- |
| `tableName` | `TableName` |

#### Returns

[`SelectableQueryInitializer`](/api/interfaces/sessions.SelectableQueryInitializer)\<[`NamedTableInfo`](/api/modules/sessions#namedtableinfo)\<`DataModel`, `TableName`>>

#### Inherited from

GenericDatabaseReader.query

***

### normalizeId

▸ **normalizeId**\<`TableName`>(`tableName`, `id`): `null` | [`TableKey`](/api/modules/sessions#tablekey)\<`DataModel`, `TableName`>

#### Type parameters

| Name | Type |
| :- | :- |
| `TableName` | extends `string` |

#### Parameters

| Name | Type |
| :- | :- |
| `tableName` | `TableName` |
| `id` | `string` |

#### Returns

`null` | [`TableKey`](/api/modules/sessions#tablekey)\<`DataModel`, `TableName`>

#### Inherited from

GenericDatabaseReader.normalizeId

***

### insert

▸ **insert**\<`TableName`>(`table`, `value`): `Promise`\<[`Id`](/api/modules/sessions#id)\<`TableName`>>

#### Type parameters

| Name | Type |
| :- | :- |
| `TableName` | extends `string` |

#### Parameters

| Name | Type |
| :- | :- |
| `table` | `TableName` |
| `value` | [`WithoutSystemFields`](/api/modules/sessions#withoutsystemfields)\<[`DocumentByName`](/api/modules/sessions#documentbyname)\<`DataModel`, `TableName`>> |

#### Returns

`Promise`\<[`Id`](/api/modules/sessions#id)\<`TableName`>>

***

### patch

▸ **patch**\<`TableName`>(`table`, `id`, `value`): `Promise`\<`void`>

#### Type parameters

| Name | Type |
| :- | :- |
| `TableName` | extends `string` |

#### Parameters

| Name | Type |
| :- | :- |
| `table` | `TableName` |
| `id` | [`Id`](/api/modules/sessions#id)\<[`NonUnion`](/api/modules/sessions#nonunion)\<`TableName`>> |
| `value` | [`PatchValue`](/api/modules/sessions#patchvalue)\<[`DocumentByName`](/api/modules/sessions#documentbyname)\<`DataModel`, `TableName`>> |

#### Returns

`Promise`\<`void`>

▸ **patch**\<`TableName`>(`id`, `value`): `Promise`\<`void`>

#### Type parameters

| Name | Type |
| :- | :- |
| `TableName` | extends `string` |

#### Parameters

| Name | Type |
| :- | :- |
| `id` | [`Id`](/api/modules/sessions#id)\<`TableName`> |
| `value` | [`PatchValue`](/api/modules/sessions#patchvalue)\<[`DocumentByName`](/api/modules/sessions#documentbyname)\<`DataModel`, `TableName`>> |

#### Returns

`Promise`\<`void`>

***

### replace

▸ **replace**\<`TableName`>(`table`, `id`, `value`): `Promise`\<`void`>

#### Type parameters

| Name | Type |
| :- | :- |
| `TableName` | extends `string` |

#### Parameters

| Name | Type |
| :- | :- |
| `table` | `TableName` |
| `id` | [`Id`](/api/modules/sessions#id)\<[`NonUnion`](/api/modules/sessions#nonunion)\<`TableName`>> |
| `value` | [`WithOptionalSystemFields`](/api/modules/sessions#withoptionalsystemfields)\<[`DocumentByName`](/api/modules/sessions#documentbyname)\<`DataModel`, `TableName`>> |

#### Returns

`Promise`\<`void`>

▸ **replace**\<`TableName`>(`id`, `value`): `Promise`\<`void`>

#### Type parameters

| Name | Type |
| :- | :- |
| `TableName` | extends `string` |

#### Parameters

| Name | Type |
| :- | :- |
| `id` | [`Id`](/api/modules/sessions#id)\<`TableName`> |
| `value` | [`WithOptionalSystemFields`](/api/modules/sessions#withoptionalsystemfields)\<[`DocumentByName`](/api/modules/sessions#documentbyname)\<`DataModel`, `TableName`>> |

#### Returns

`Promise`\<`void`>

***

### delete

▸ **delete**\<`TableName`>(`table`, `id`): `Promise`\<`void`>

#### Type parameters

| Name | Type |
| :- | :- |
| `TableName` | extends `string` |

#### Parameters

| Name | Type |
| :- | :- |
| `table` | `TableName` |
| `id` | [`Id`](/api/modules/sessions#id)\<[`NonUnion`](/api/modules/sessions#nonunion)\<`TableName`>> |

#### Returns

`Promise`\<`void`>

▸ **delete**(`id`): `Promise`\<`void`>

#### Parameters

| Name | Type |
| :- | :- |
| `id` | [`Id`](/api/modules/sessions#id)\<[`WritableTableNames`](/api/modules/sessions#writabletablenames)\<`DataModel`>> |

#### Returns

`Promise`\<`void`>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.