如何使用mysql设置默认值_mysql默认值设置方法

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

在 MySQL 中设置默认值,主要是通过 DEFAULT 关键字来实现的。默认值的作用是:当插入数据时没有为某个字段指定值,数据库会自动使用该字段设置的默认值填充。这在实际开发中非常实用,尤其对于状态字段、创建时间等常用字段。

1. 创建表时设置默认值

在使用 CREATE TABLE 语句建表时,可以直接为字段指定默认值。

字符串类型字段可以设置默认字符串 数值类型可设置默认数字 时间类型推荐使用 CURRENT_TIMESTAMP 获取当前时间

示例:

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 默认值为 1(比如表示“启用”),created_at 自动记录插入时间。

2. 修改已有字段的默认值

如果表已经存在,可以通过 ALTER TABLE 语句修改字段的默认值。

语法:

ALTER TABLE 表名 ALTER COLUMN 字段名 SET DEFAULT 值;

注意:MySQL 的语法略有不同,正确写法如下:

ALTER TABLE users ALTER status SET DEFAULT 0;

这条语句将 users 表中 status 字段的默认值改为 0。

3. 删除默认值

如果想移除某个字段的默认值,可以使用 DROP DEFAULT。

ALTER TABLE users ALTER status DROP DEFAULT;

执行后,status 字段将不再有默认值,插入时若不指定该字段且无显式 NULL,则可能报错(取决于是否允许 NULL)。

4. 注意事项

设置默认值时需注意以下几点:

字段允许 NULL 时,INSERT 不填字段且无默认值则存为 NULL;设置了 DEFAULT 则用默认值 时间类型的默认值建议用 CURRENT_TIMESTAMP,而不是 NOW()(仅在某些上下文中有效) 自增字段(AUTO_INCREMENT)通常不需要设置默认值 字符型默认值要用引号包裹,如 DEFAULT 'unknown'

基本上就这些。合理使用默认值能减少代码中的冗余赋值,提升数据一致性。

相关推荐