DEFAULT用于设置列的默认值,插入时若未指定该列则自动填充;2. 支持常量、CURRENT_TIMESTAMP等表达式(MySQL 8.0+支持更复杂表达式);3. 可在INSERT或UPDATE中使用DEFAULT关键字强制应用默认值;4. TEXT/BLOB类型不可设默认值,NOT NULL列需谨慎处理以避免插入错误。

在 MySQL 中,DEFAULT 是一个非常实用的关键字,主要用于为表中的列设置默认值。当插入新记录时,如果没有显式地为某个字段提供值,MySQL 就会自动使用该列定义的默认值填充。合理使用 DEFAULT 能提高数据完整性、减少冗余代码,并简化插入操作。
创建表时,可以通过 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
);
说明:
如果某列有默认值,在 INSERT 语句中可以不包含该列,系统会自动使用默认值填充。
INSERT INTO users (username) VALUES ('alice');
结果:
你也可以在 INSERT 或 UPDATE 中主动使用 DEFAULT 来强制使用默认值,而不是传入具体值。
INSERT INTO users (username, status) VALUES ('bob', DEFAULT);
这会让 status 使用其定义的默认值(1),即使你写了字段名。
更新时也适用:
UPDATE users SET status = DEFAULT WHERE username = 'alice';
从 MySQL 8.0 开始,支持更复杂的默认值表达式(需是常量表达式)。
CREATE TABLE logs (
    log_id INT PRIMARY KEY,
    detail TEXT,
    ts DATETIME DEFAULT (NOW() + INTERVAL 1 HOUR)
);
注意:括号不能少,且表达式必须是无副作用的常量类操作。
以上就是mysql中default的使用的详细内容,更多请关注php中文网其它相关文章!
 
                        
                        每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
 
                Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号