3.5. SQL Compression Syntax Warnings and Errors

The attribute KEY_BLOCK_SIZE is permitted only
when ROW_FORMAT is specified as
COMPRESSED or is omitted. Specifying a
KEY_BLOCK_SIZE with any other
ROW_FORMAT generates a warning that you can
view with SHOW WARNINGS. However, the table is
non-compressed; the specified KEY_BLOCK_SIZE is
ignored).

Level

Code

Message

Warning

1478

InnoDB: ignoring KEY_BLOCK_SIZE=n
unless ROW_FORMAT=COMPRESSED.

If you are running with
innodb_strict_mode enabled, the
combination of a KEY_BLOCK_SIZE with any
ROW_FORMAT other than
COMPRESSED generates an error, not a warning,
and the table is not created.

When innodb_strict_mode is
OFF, InnoDB creates or alters the table, but
ignores certain settings as shown below. You can see the warning
messages in the MySQL error log. When
innodb_strict_mode is
ON, these specified combinations of options
generate errors, and the table is not created or altered. To see
the full description of the error condition, issue the
SHOW ERRORS statement: example:

Note that it is not possible to see the chosen
KEY_BLOCK_SIZE using SHOW TABLE
STATUS. The statement SHOW CREATE
TABLE displays the KEY_BLOCK_SIZE
(even if it was ignored when creating the table). The real
compressed page size of the table cannot be displayed by MySQL.