MySQL中的默认值(Default Value)是指在创建表时为某个列指定的一个值,当插入新记录时,如果没有为该列提供值,则系统会自动使用默认值。
MySQL中的默认值可以是以下几种类型:
NOW()
、CURRENT_DATE()
等。假设有一个用户表users
,其中有一个列status
表示用户的状态,默认值为“活跃”。
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
status VARCHAR(20) DEFAULT '活跃'
);
插入数据时,如果不指定status
列的值,系统会自动使用默认值“活跃”。
INSERT INTO users (username, email) VALUES ('john_doe', 'john@example.com');
查询结果:
SELECT * FROM users;
输出:
+----+------------+------------------+--------+
| id | username | email | status |
+----+------------+------------------+--------+
| 1 | john_doe | john@example.com | 活跃 |
+----+------------+------------------+--------+
原因:
解决方法:
例如,检查表结构:
DESCRIBE users;
确保status
列有默认值:
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| username | varchar(50) | NO | | NULL | |
| email | varchar(100)| NO | | NULL | |
| status | varchar(20) | YES | | 活跃 | |
+----------+-------------+------+-----+---------+----------------+
确保插入语句中没有显式指定status
列的值:
INSERT INTO users (username, email) VALUES ('jane_doe', 'jane@example.com');
腾讯云数据库TDSQL训练营
腾讯云数据库TDSQL训练营
云+社区沙龙online[数据工匠]
Techo Youth2022学年高校公开课
企业创新在线学堂
云+社区沙龙online [国产数据库]
云+社区沙龙online [国产数据库]
云+社区沙龙online [国产数据库]
企业创新在线学堂
企业创新在线学堂
高校公开课
领取专属 10元无门槛券
手把手带您无忧上云