MySQL中的默认值(Default Value)是指在创建表时为某个字段设置的默认值。当插入新记录时,如果没有为该字段提供值,系统会自动使用默认值。
MySQL支持以下几种类型的默认值:
'default_value'
。CURRENT_DATE
、NOW()
等。(CURRENT_DATE + INTERVAL 1 DAY)
。CURRENT_TIMESTAMP
作为默认值,以便自动记录数据的创建或更新时间。0
。CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
status ENUM('active', 'disabled') DEFAULT 'active',
views INT DEFAULT 0
);
原因:
NOT NULL
约束,但默认值为空。解决方法:
-- 错误的默认值设置
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
created_at TIMESTAMP DEFAULT '2023-10-01', -- 错误:类型不匹配
status ENUM('active', 'disabled') DEFAULT 'active',
views INT DEFAULT '0' -- 错误:类型不匹配
);
-- 正确的默认值设置
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
status ENUM('active', 'disabled') DEFAULT 'active',
views INT DEFAULT 0
);
通过以上内容,您可以全面了解MySQL中字段默认值的基础概念、优势、类型、应用场景以及常见问题的解决方法。
领取专属 10元无门槛券
手把手带您无忧上云