1682
MariaDBWARNINGCriticalDDLHIGH confidence

The ZEROFILL attribute is deprecated and will be removed in a future release

Production Risk

Low — warning only; behaviour unchanged until the attribute is removed.

What this means

MySQL warns that the ZEROFILL attribute for numeric columns is deprecated. Use LPAD() or application-level formatting instead.

Why it happens
  1. 1Declaring a column with ZEROFILL modifier in CREATE TABLE or ALTER TABLE.
How to reproduce
trigger — this will error
trigger — this will error
CREATE TABLE t (n INT ZEROFILL);

expected output

Warning (Code 1682): The ZEROFILL attribute is deprecated and will be removed in a future release. Use the LPAD function to zero-pad numbers, or store the formatted numbers in a CHAR column.

Fix

Replace ZEROFILL with LPAD in queries

Replace ZEROFILL with LPAD in queries
SELECT LPAD(n, 5, '0') AS padded FROM t;

Why this works

LPAD provides the same visual result without a deprecated column attribute.

What not to do

Sources
Official documentation ↗

MySQL 8.0 — 1682 ER_WARN_DEPRECATED_ZEROFILL

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

← All MariaDB errors