Changing a Column’s Default Value
Problem
You want to leave a column definition alone except for the default value.
Solution
Use SET
DEFAULT
to specify the
default value explicitly, or DROP
DEFAULT
to remove the current default and allow
MySQL to assign the “default
default.”
Discussion
A column’s default value is part of its definition,
but can be modified separately from other aspects of the definition.
To change a default value, use ALTER
col_name
SET
DEFAULT
:
ALTER TABLE mytbl ALTER j SET DEFAULT 1000;
Default
values must be constants. For example, you cannot set the default for
a date-valued column to NOW( )
, although that
would be very useful.
To drop a default value, use ALTER
col_name
DROP
DEFAULT
:
ALTER TABLE mytbl ALTER j DROP DEFAULT;
In this case, the
column’s default value
reverts to the standard default for the column type. For columns that
can contain NULL
values, this will be
NULL
. Otherwise, the general defaults are 0, the
empty string, or the “zero” date or
time for numeric, string, or date or time columns, respectively. (The
exceptions are for AUTO_INCREMENT
,
ENUM
, and TIMESTAMP
columns,
for which the defaults are the next sequence number, the first
enumeration member, and the current date and time.)
Get MySQL Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.