> For the complete documentation index, see [llms.txt](https://mariadb.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mariadb.com/docs/server/reference/error-codes/mariadb-error-codes-1100-to-1199/e1114.md).

# Error 1114: The table is full

| Error Code | SQLSTATE | Error                  | Description            |
| ---------- | -------- | ---------------------- | ---------------------- |
| 1114       | HY000    | ER\_RECORD\_FILE\_FULL | The table '%s' is full |

## Possible Causes and Solutions

The storage engine can't add more data to the table. The cause depends on the engine:

* **InnoDB.** The tablespace can't grow, because the file system is full, or because the table is in the system tablespace, and [innodb\_data\_file\_path](/docs/server/server-usage/storage-engines/innodb/innodb-system-variables.md#innodb_data_file_path) gives it a fixed size without `autoextend`. For InnoDB temporary tables, the size is set by [innodb\_temp\_data\_file\_path](/docs/server/server-usage/storage-engines/innodb/innodb-system-variables.md#innodb_temp_data_file_path). The [error log](/docs/server/server-management/server-monitoring-logs/error-log.md) usually says which file couldn't be extended.
* **MEMORY.** The table reached [max\_heap\_table\_size](/docs/server/server-management/variables-and-modes/server-system-variables.md#max_heap_table_size). The limit that applies is the value when the table was created or last altered, not the current one.
* **MyISAM and Aria.** The data file reached its maximum size, which is set by the `MAX_ROWS` and `AVG_ROW_LENGTH` table options. `SHOW TABLE STATUS` shows it as `Max_data_length`.

For example:

```
SET max_heap_table_size=16384;
CREATE TABLE hm (id INT, pad CHAR(200)) ENGINE=MEMORY;
INSERT INTO hm SELECT seq, 'x' FROM seq_1_to_10000;
ERROR 1114 (HY000): The table 'hm' is full

CREATE TABLE mr (id INT, pad CHAR(100)) ENGINE=MyISAM MAX_ROWS=10;
INSERT INTO mr SELECT seq, 'x' FROM seq_1_to_100000;
ERROR 1114 (HY000): The table 'mr' is full
```

The rows written before the error stay in tables that aren't transactional, such as MEMORY and MyISAM. In these examples, 36 and 65535 rows.

To solve the error:

* **Full file system:** free space, or move the data to a larger file system. Check `df` for the file system of the [datadir](/docs/server/server-management/variables-and-modes/server-system-variables.md#datadir).
* **InnoDB system tablespace:** add `:autoextend` to the last file in `innodb_data_file_path`, or add a file, and restart the server. To keep tables out of the system tablespace, use [innodb\_file\_per\_table](/docs/server/server-usage/storage-engines/innodb/innodb-system-variables.md#innodb_file_per_table), which is ON by default.
* **MEMORY:** raise `max_heap_table_size`, then rebuild the table with `ALTER TABLE hm ENGINE=MEMORY`, so that it picks up the new limit.
* **MyISAM and Aria:** raise the limit with `ALTER TABLE mr MAX_ROWS=1000000000`. This rebuilds the table.

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

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