---
title: MysqlDatabaseAdapter
source: https://github.com/remix-run/remix/blob/remix@3.0.0-beta.2/packages/data-table-mysql/src/lib/adapter.ts#L38
---

# MysqlDatabaseAdapter

## Summary

`DatabaseAdapter` implementation for mysql-compatible clients.

## Signature

```ts
class MysqlDatabaseAdapter {
  constructor(client: MysqlQueryable): MysqlDatabaseAdapter;

  // Properties
  capabilities: {
    migrationLock: boolean;
    returning: boolean;
    savepoints: boolean;
    transactionalDdl: boolean;
    upsert: boolean;
  };
  dialect: string;

  // Methods
  acquireMigrationLock(): Promise<void>;
  beginTransaction(options: TransactionOptions): Promise<TransactionToken>;
  commitTransaction(token: TransactionToken): Promise<void>;
  compileSql(operation: DataManipulationOperation): SqlStatement[];
  createSavepoint(token: TransactionToken, name: string): Promise<void>;
  execute(request: DataManipulationRequest): Promise<DataManipulationResult>;
  executeScript(sql: string, transaction: TransactionToken): Promise<void>;
  hasColumn(
    table: TableRef,
    column: string,
    transaction: TransactionToken,
  ): Promise<boolean>;
  hasTable(table: TableRef, transaction: TransactionToken): Promise<boolean>;
  releaseMigrationLock(): Promise<void>;
  releaseSavepoint(token: TransactionToken, name: string): Promise<void>;
  rollbackToSavepoint(token: TransactionToken, name: string): Promise<void>;
  rollbackTransaction(token: TransactionToken): Promise<void>;
}

```

## Properties

### `capabilities`

Feature flags describing the mysql behaviors supported by this adapter.

### `dialect`

The SQL dialect identifier reported by this adapter.

## Methods

### `acquireMigrationLock(): Promise<void>`

Acquires the mysql migration lock.



### `beginTransaction(options: TransactionOptions): Promise<TransactionToken>`

Starts a mysql transaction.

#### Parameters

##### `options`

Transaction options.

### `commitTransaction(token: TransactionToken): Promise<void>`

Commits an open mysql transaction.

#### Parameters

##### `token`

Transaction token to commit.

### `compileSql(operation: DataManipulationOperation): SqlStatement[]`

Compiles a data-manipulation operation to mysql SQL statements.

#### Parameters

##### `operation`

Operation to compile.

### `createSavepoint(token: TransactionToken, name: string): Promise<void>`

Creates a savepoint in an open mysql transaction.

#### Parameters

##### `token`

Transaction token to use.

##### `name`

Savepoint name.

### `execute(request: DataManipulationRequest): Promise<DataManipulationResult>`

Executes a mysql data-manipulation request.

#### Parameters

##### `request`

Request to execute.

### `executeScript(sql: string, transaction: TransactionToken): Promise<void>`

Executes a multi-statement mysql SQL script.

mysql2 only accepts multi-statement scripts when the underlying connection
was created with `multipleStatements: true`.

#### Parameters

##### `sql`

SQL script to execute.

##### `transaction`

Optional transaction token.

### `hasColumn(table: TableRef, column: string, transaction: TransactionToken): Promise<boolean>`

Checks whether a column exists in mysql.

#### Parameters

##### `table`

Table reference to inspect.

##### `column`

Column name to look up.

##### `transaction`

Optional transaction token.

### `hasTable(table: TableRef, transaction: TransactionToken): Promise<boolean>`

Checks whether a table exists in mysql.

#### Parameters

##### `table`

Table reference to inspect.

##### `transaction`

Optional transaction token.

### `releaseMigrationLock(): Promise<void>`

Releases the mysql migration lock.



### `releaseSavepoint(token: TransactionToken, name: string): Promise<void>`

Releases a savepoint in an open mysql transaction.

#### Parameters

##### `token`

Transaction token to use.

##### `name`

Savepoint name.

### `rollbackToSavepoint(token: TransactionToken, name: string): Promise<void>`

Rolls back to a savepoint in an open mysql transaction.

#### Parameters

##### `token`

Transaction token to use.

##### `name`

Savepoint name.

### `rollbackTransaction(token: TransactionToken): Promise<void>`

Rolls back an open mysql transaction.

#### Parameters

##### `token`

Transaction token to roll back.