1673
MySQLERRORNotableInnoDBHIGH confidence

Table cannot be moved from the system tablespace

Production Risk

Medium — the operation is rejected; table data is unaffected.

What this means

An operation (such as DISCARD TABLESPACE or IMPORT TABLESPACE) was attempted on a table stored in the InnoDB system tablespace (ibdata1), which does not support per-table tablespace operations.

Why it happens
  1. 1The table was created when innodb_file_per_table = OFF and resides in the shared system tablespace.
How to reproduce
trigger — this will error
trigger — this will error
ALTER TABLE t DISCARD TABLESPACE;
-- t was created with innodb_file_per_table = OFF

expected output

ERROR 1673 (HY000): Table 't' is in the system tablespace, which does not support IMPORT/DISCARD.

Fix

Recreate the table with innodb_file_per_table = ON

Recreate the table with innodb_file_per_table = ON
SET GLOBAL innodb_file_per_table = ON;
ALTER TABLE t ENGINE = InnoDB; -- moves table to its own .ibd file

Why this works

Enabling file-per-table and rebuilding the table gives it its own tablespace file.

Version notes

Sources
Official documentation ↗

MySQL 8.0 — 1673 ER_TABLE_IN_SYSTEM_TABLESPACE

Content generated with AI assistance and reviewed for accuracy. Found an error? hello@errcodes.dev

← All MySQL errors