MySQL中的默认值(Default Value)是指在创建表时为某个列指定的一个值,当插入新记录时,如果没有为该列提供值,则系统会自动使用默认值。
MySQL支持多种类型的默认值:
以下是一个创建表并设置默认值的示例:
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,
is_active BOOLEAN DEFAULT TRUE
);
在这个示例中:
created_at
列的默认值是当前时间戳。is_active
列的默认值是 TRUE
。原因:
NOT NULL
:如果列被定义为 NOT NULL
,则必须为该列提供值,即使已经设置了默认值。解决方法:
NOT NULL
,或者如果需要 NOT NULL
,则确保在插入时提供值。DEFAULT
关键字来显式指定使用默认值。示例:
-- 错误的插入方式(假设 created_at 列被定义为 NOT NULL)
INSERT INTO users (username, email) VALUES ('john', 'john@example.com');
-- 正确的插入方式
INSERT INTO users (username, email, created_at) VALUES ('john', 'john@example.com', DEFAULT);
或者使用 INSERT IGNORE
或 ON DUPLICATE KEY UPDATE
语句来处理默认值:
-- 使用 INSERT IGNORE
INSERT IGNORE INTO users (username, email) VALUES ('john', 'john@example.com');
-- 使用 ON DUPLICATE KEY UPDATE
INSERT INTO users (username, email) VALUES ('john', 'john@example.com')
ON DUPLICATE KEY UPDATE created_at = DEFAULT;
领取专属 10元无门槛券
手把手带您无忧上云