MySQL 常用 DEFAULT 默认值一览表

⚠️ 注意:CURRENT_TIMESTAMP 不要加引号 ,写成 DEFAULT CURRENT_TIMESTAMP,写成 'CURRENT_TIMESTAMP' 会当成普通字符串,不是时间函数。

MySQL5.6.5+ 才支持 DATETIME 使用 CURRENT_TIMESTAMP;MySQL8.0 支持表达式默认值(需要包括号 DEFAULT (xxx))

一、时间类系统默认值(你重点关心的)

默认值写法 适用字段类型 说明 示例
CURRENT_TIMESTAMP TIMESTAMP / DATETIME 当前时间戳(日期+时分秒),插入时自动赋值 created_at DATETIME DEFAULT CURRENT_TIMESTAMP
CURRENT_TIMESTAMP(n) TIMESTAMP(n) / DATETIME(n) 带微秒,n=0~6 dt DATETIME(3) DEFAULT CURRENT_TIMESTAMP(3)
CURRENT_DATE DATE 当前日期(只有年月日),MySQL8.0+支持 ct_date DATE DEFAULT (CURRENT_DATE)
CURRENT_TIME TIME 当前时间(时分秒),MySQL8.0+支持 t TIME DEFAULT (CURRENT_TIME)
ON UPDATE CURRENT_TIMESTAMP TIMESTAMP / DATETIME 不是DEFAULT,是附加属性:该行其他字段更新时,自动刷新为本字段时间 updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

❗ 坑:NOW() / SYSDATE() 不能直接放在 DEFAULT 里 (MySQL5.7不支持,8.0可以写 DEFAULT (NOW()),但推荐统一用 CURRENT_TIMESTAMP)

二、常量默认值(所有版本通用)

默认值 适用类型 说明
NULL 任意允许NULL字段 默认空,col VARCHAR(20) DEFAULT NULL
''(空字符串) CHAR/VARCHAR/TEXT 字符串空值
0 TINYINT/INT/BIGINT/FLOAT 数字默认0
1 / -1 / 99 数值型 自定义固定数字
'固定字符串' VARCHAR/CHAR 固定文本,如 'unknown'
'0000-00-00' DATE DATE零值(sql_mode严格模式下不推荐)
'0000-00-00 00:00:00' DATETIME/TIMESTAMP 时间零值(严格模式报错)

三、MySQL8.0+ 支持【表达式默认值】(必须带括号)

默认表达式 字段类型 说明
DEFAULT (UUID()) CHAR/VARCHAR 默认生成UUID字符串
DEFAULT (UUID_TO_BIN(UUID())) BINARY(16) UUID转二进制存储
DEFAULT (RAND()) FLOAT 默认随机数0~1
DEFAULT (JSON_ARRAY()) JSON 默认空json数组
DEFAULT (CURRENT_DATE + INTERVAL 1 DAY) DATE 默认明天日期

四、各类型隐式默认值(不写DEFAULT时自动自带)

字段类型 不写DEFAULT的隐式默认值
INT/TINYINT/BIGINT 0(NOT NULL);NULL(允许NULL)
VARCHAR/CHAR ''(NOT NULL);NULL(允许NULL)
DATE 0000-00-00(NOT NULL);NULL
DATETIME 0000-00-00 00:00:00(NOT NULL);NULL
TIMESTAMP 受 explicit_defaults_for_timestamp 参数影响

常用建表示例

sql 复制代码
CREATE TABLE test(
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(32) DEFAULT '',
  status TINYINT DEFAULT 1,
  created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
  updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  create_date DATE DEFAULT (CURRENT_DATE),
  uuid_col CHAR(36) DEFAULT (UUID())
);
相关推荐
快乐的木子李2 小时前
mysql-26.7.0-linux26.7.0下载安装
数据库·mysql
知行产研3 小时前
易控智驾:毛利率跃升17.2个百分点,矿山无人驾驶从“规模换增长“迈入“盈利拐点“
数据库·mysql
可涵不会debug4 小时前
第一次学 LangGraph:用一个快递案例搞懂 State、Node、Edge 和 compile
服务器·数据库·mysql
用户250458106095 小时前
数据库索引为什么会失效?从执行计划理解 SQL 性能优化
sql·mysql
此时不提桶,更待何时5 小时前
03-04-B-连接池与DB治理面试与生产事故实战
mysql·面试
dogeyi6 小时前
数据库操作(1)
mysql
JosieBook7 小时前
【数据库】MySQL 实战精通系列 · 第8篇:慢查询治理与性能优化实战
数据库·mysql·性能优化
这个DBA有点耶8 小时前
分区表深入:分区裁剪失效的6种场景、分区锁机制与维护实战
数据库·mysql·dba