MySQL 创建表时设置默认值是指在定义表的字段时为其指定一个默认值。当插入新记录时,如果没有为该字段提供值,则系统会自动使用默认值。
CREATE TABLE table_name (
column1 datatype DEFAULT default_value,
column2 datatype,
...
);
MySQL 支持多种类型的默认值:
'default_value'
。NOW()
表示当前时间。UUID()
生成唯一标识符。created_at
和 updated_at
字段设置默认值为当前时间戳。status
字段可以设置默认值为 'active'
或 'pending'
。id
字段可以设置默认值为自增。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(10) DEFAULT 'active'
);
原因:
NULL
,如果字段不允许 NULL
,也不会使用默认值。解决方法:
-- 错误示例:类型不匹配
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
created_at TIMESTAMP DEFAULT 'default_value' -- 错误:'default_value' 不是 TIMESTAMP 类型
);
-- 正确示例
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 -- 正确:CURRENT_TIMESTAMP 是 TIMESTAMP 类型
);
通过以上步骤和示例代码,您可以更好地理解和应用 MySQL 创建表时设置默认值的相关知识。
领取专属 10元无门槛券
手把手带您无忧上云