# SQLRecordManager

> **Class** in `langchain_classic`

📖 [View in docs](https://reference.langchain.com/python/langchain-classic/indexes/_sql_record_manager/SQLRecordManager)

A SQL Alchemy based implementation of the record manager.

## Signature

```python
SQLRecordManager(
    self,
    namespace: str,
    *,
    engine: Engine | AsyncEngine | None = None,
    db_url: None | str | URL = None,
    engine_kwargs: dict[str, Any] | None = None,
    async_mode: bool = False,
)
```

## Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `namespace` | `str` | Yes | The namespace associated with this record manager. |
| `engine` | `Engine \| AsyncEngine \| None` | No | An already existing SQL Alchemy engine. (default: `None`) |
| `db_url` | `None \| str \| URL` | No | A database connection string used to create an SQL Alchemy engine. (default: `None`) |
| `engine_kwargs` | `dict[str, Any] \| None` | No | Additional keyword arguments to be passed when creating the engine. (default: `None`) |
| `async_mode` | `bool` | No | Whether to create an async engine. Driver should support async operations. It only applies if `db_url` is provided. (default: `False`) |

## Extends

- `RecordManager`

## Constructors

```python
__init__(
    self,
    namespace: str,
    *,
    engine: Engine | AsyncEngine | None = None,
    db_url: None | str | URL = None,
    engine_kwargs: dict[str, Any] | None = None,
    async_mode: bool = False,
) -> None
```

| Name | Type |
|------|------|
| `namespace` | `str` |
| `engine` | `Engine \| AsyncEngine \| None` |
| `db_url` | `None \| str \| URL` |
| `engine_kwargs` | `dict[str, Any] \| None` |
| `async_mode` | `bool` |


## Properties

- `engine`
- `dialect`
- `session_factory`

## Methods

- [`create_schema()`](https://reference.langchain.com/python/langchain-classic/indexes/_sql_record_manager/SQLRecordManager/create_schema)
- [`acreate_schema()`](https://reference.langchain.com/python/langchain-classic/indexes/_sql_record_manager/SQLRecordManager/acreate_schema)
- [`get_time()`](https://reference.langchain.com/python/langchain-classic/indexes/_sql_record_manager/SQLRecordManager/get_time)
- [`aget_time()`](https://reference.langchain.com/python/langchain-classic/indexes/_sql_record_manager/SQLRecordManager/aget_time)
- [`update()`](https://reference.langchain.com/python/langchain-classic/indexes/_sql_record_manager/SQLRecordManager/update)
- [`aupdate()`](https://reference.langchain.com/python/langchain-classic/indexes/_sql_record_manager/SQLRecordManager/aupdate)
- [`exists()`](https://reference.langchain.com/python/langchain-classic/indexes/_sql_record_manager/SQLRecordManager/exists)
- [`aexists()`](https://reference.langchain.com/python/langchain-classic/indexes/_sql_record_manager/SQLRecordManager/aexists)
- [`list_keys()`](https://reference.langchain.com/python/langchain-classic/indexes/_sql_record_manager/SQLRecordManager/list_keys)
- [`alist_keys()`](https://reference.langchain.com/python/langchain-classic/indexes/_sql_record_manager/SQLRecordManager/alist_keys)
- [`delete_keys()`](https://reference.langchain.com/python/langchain-classic/indexes/_sql_record_manager/SQLRecordManager/delete_keys)
- [`adelete_keys()`](https://reference.langchain.com/python/langchain-classic/indexes/_sql_record_manager/SQLRecordManager/adelete_keys)

---

[View source on GitHub](https://github.com/langchain-ai/langchain/blob/02991cb4cf2063d51a07268edafb05fe53de1826/libs/langchain/langchain_classic/indexes/_sql_record_manager.py#L85)