mysql数据库中默认值如何设置

来源:这里教程网 时间:2026-02-28 20:18:02 作者:

在MySQL数据库中设置默认值,主要是通过 DEFAULT 关键字来实现。你可以在创建表(CREATE TABLE)或修改表结构(ALTER TABLE)时为字段指定默认值。这个默认值会在插入数据时,若未提供该字段的值,自动填充。

创建表时设置默认值

在定义字段时直接使用 DEFAULT 指定默认值。

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    status TINYINT DEFAULT 1,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

说明:

status TINYINT DEFAULT 1:表示如果插入时不指定 status 值,默认设为 1(比如表示“启用”状态)。 created_at DATETIME DEFAULT CURRENT_TIMESTAMP:自动记录当前时间作为创建时间。

修改已有字段的默认值

使用 ALTER TABLE 语句可以为已有字段添加或更改默认值。

ALTER TABLE users 
ALTER COLUMN status SET DEFAULT 0;

或者(某些版本写法):

ALTER TABLE users 
MODIFY COLUMN status TINYINT DEFAULT 0;

删除默认值

如果想移除某个字段的默认值,可以这样操作:

ALTER TABLE users 
ALTER COLUMN status DROP DEFAULT;

常见默认值类型示例

字符串:DEFAULT 'unknown' 数字:DEFAULT 0 或 DEFAULT -1 时间戳CURRENT_TIMESTAMP(当前时间) CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP(自动更新) NULL 值:DEFAULT NULL(前提是字段允许 NULL)

注意:

如果字段定义为 NOT NULL 又没有设置 DEFAULT,且插入时未提供值,会报错。 对于 TIMESTAMP 和 DATETIME 类型,CURRENT_TIMESTAMP 是常用且实用的默认值选项。 基本上就这些。根据实际业务需求合理设置默认值,能减少插入数据时的冗余操作。

相关推荐