3151
MariaDBWARNINGCriticalDeprecationHIGH confidence

ZEROFILL attribute is deprecated

Production Risk

Low — warning only; functionality unchanged until removal.

What this means

The ZEROFILL attribute for numeric columns is deprecated in MySQL 8.0.17. It pads the displayed value with leading zeros up to the display width, but this is cosmetic only and will be removed.

Why it happens
  1. 1Defining a column with the ZEROFILL attribute.
How to reproduce
trigger — this will error
trigger — this will error
CREATE TABLE t1 (id INT(5) ZEROFILL);

expected output

Warning (Code 3151): The ZEROFILL attribute is deprecated and will be removed in a future release.

Fix

Use LPAD() for zero-padding in queries

Use LPAD() for zero-padding in queries
SELECT LPAD(id, 5, '0') AS padded_id FROM t1;

Why this works

Application-level or query-level formatting replaces the deprecated attribute.

What not to do

Version notes
MySQL 8.0.17

ZEROFILL deprecated; UNSIGNED implies ZEROFILL removal too.

Sources
Official documentation ↗

MySQL 8.0 — 3151 ER_WARN_DEPRECATED_ZEROFILL2

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

← All MariaDB errors