# FLUSH TABLES FOR EXPORT

## Syntax

```sql
FLUSH TABLE[S] table_name [, table_name] FOR EXPORT
```

## Description

`FLUSH TABLES ... FOR EXPORT` flushes changes to the specified tables to disk so that binary copies can be made while the server is still running. This works for [Archive](https://mariadb.com/docs/server/server-usage/storage-engines/archive), [Aria](https://mariadb.com/docs/server/server-usage/storage-engines/aria), [CSV](https://mariadb.com/docs/server/server-usage/storage-engines/csv), [InnoDB](https://mariadb.com/docs/server/server-usage/storage-engines/innodb), [MyISAM](https://mariadb.com/docs/server/server-usage/storage-engines/myisam-storage-engine) and [MERGE](https://mariadb.com/docs/server/server-usage/storage-engines/merge) tables.

The table is read locked until you issue [UNLOCK TABLES](https://mariadb.com/docs/server/reference/sql-statements/transactions/transactions-unlock-tables).

If a storage engine does not support `FLUSH TABLES FOR EXPORT`, a 1031 error ([SQLSTATE](https://mariadb.com/docs/server/reference/sql-statements/programmatic-compound-statements/programmatic-compound-statements-diagnostics/sqlstate) 'HY000') is produced.

If `FLUSH TABLES ... FOR EXPORT` is in effect in the session, the following statements will produce an error if attempted:

* `FLUSH TABLES WITH READ LOCK`
* `FLUSH TABLES ... WITH READ LOCK`
* `FLUSH TABLES ... FOR EXPORT`
* Any statement trying to update any table

If any of the following statements is in effect in the session, attempting `FLUSH TABLES ... FOR EXPORT` will produce an error.

* `FLUSH TABLES ... WITH READ LOCK`
* `FLUSH TABLES ... FOR EXPORT`
* `LOCK TABLES ... READ`
* `LOCK TABLES ... WRITE`

`FLUSH FOR EXPORT` is not written to the [binary log](https://mariadb.com/docs/server/server-management/server-monitoring-logs/binary-log).

This statement requires the [RELOAD](https://mariadb.com/docs/server/reference/account-management-sql-statements/grant#global-privileges) and the [LOCK TABLES](https://mariadb.com/docs/server/reference/account-management-sql-statements/grant#database-privileges) privileges.

If one of the specified tables cannot be locked, none of the tables will be locked.

If a table does not exist, an error like the following will be produced:

```
ERROR 1146 (42S02): Table 'test.xxx' doesn't exist
```

If a table is a view, an error like the following will be produced:

```
ERROR 1347 (HY000): 'test.v' is not BASE TABLE
```

## Example

```sql
FLUSH TABLES test.t1 FOR EXPORT;
#  Copy files related to the table (see below)
UNLOCK TABLES;
```

For a full description, please see [copying MariaDB tables](https://mariadb.com/docs/server/server-usage/tables/copying-tables-between-different-mariadb-databases-and-mariadb-servers).

## See Also

* [FLUSH TABLES](https://mariadb.com/docs/server/reference/sql-statements/administrative-sql-statements/flush-commands/flush)
* [Copying Tables Between Different MariaDB Databases and MariaDB Servers](https://mariadb.com/docs/server/server-usage/tables/copying-tables-between-different-mariadb-databases-and-mariadb-servers)
* [Copying Transportable InnoDB Tablespaces](https://mariadb.com/docs/server/server-usage/storage-engines/innodb/innodb-tablespaces/innodb-file-per-table-tablespaces#copying-transportable-tablespaces)
* [myisampack](https://mariadb.com/docs/server/clients-and-utilities/myisam-clients-and-utilities/myisampack) - Compressing the MyISAM data file for easier distribution.
* [aria\_pack](https://mariadb.com/docs/server/clients-and-utilities/aria-clients-and-utilities/aria_pack) - Compressing the Aria data file for easier distribution

<sub>*This page is licensed: CC BY-SA / Gnu FDL*</sub>

{% @marketo/form formId="4316" %}
