MySQL中的默认约束(Default Constraint)是一种数据库约束,用于为表中的某一列指定一个默认值。当插入新记录时,如果没有为该列提供值,则系统会自动使用默认值。
MySQL中的默认约束主要有两种类型:
created_at
列设置默认值为当前时间戳。status
列设置默认值为“active”。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 VARCHAR(20) DEFAULT 'active'
);
ALTER TABLE users
ADD COLUMN created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
ADD COLUMN status VARCHAR(20) DEFAULT 'active';
原因:可能是由于插入语句中没有正确使用默认值,或者默认值与列的数据类型不匹配。
解决方法:
-- 错误的插入语句
INSERT INTO users (username, email) VALUES ('john_doe', 'john@example.com', '2023-10-01 12:00:00');
-- 正确的插入语句
INSERT INTO users (username, email) VALUES ('john_doe', 'john@example.com');
解决方法:
ALTER TABLE users
ALTER COLUMN created_at SET DEFAULT CURRENT_TIMESTAMP,
ALTER COLUMN status SET DEFAULT 'inactive';
通过以上信息,您应该能够全面了解MySQL中的默认约束及其相关应用。
领取专属 10元无门槛券
手把手带您无忧上云