MariaDB创建表时设置列默认值为当前日期的SQL命令
在MariaDB中创建含自动填充当前日期列的数据表
嘿,我来帮你搞定这个问题!要在MariaDB创建数据表时添加一个仅存储当前日期(不带时间戳)的列,并且让它默认值为当前日期,其实用DATE数据类型搭配内置函数就能轻松实现,完全不需要复杂的操作。
核心实现方案
直接在创建表时,给目标列指定DATE类型,并将默认值设为CURRENT_DATE()(简写CURRENT_DATE也生效)。这样插入新行时,如果不主动给这个列赋值,它会自动填充当前系统的日期(格式为YYYY-MM-DD,没有时间部分)。
完整的建表SQL示例如下:
CREATE TABLE your_table ( id INT AUTO_INCREMENT PRIMARY KEY, -- 这里可以添加你的其他业务列,比如: username VARCHAR(50) NOT NULL, email VARCHAR(100) NOT NULL, -- 关键的日期列 created_date DATE DEFAULT CURRENT_DATE() );
验证效果
执行上面的建表语句后,你可以插入一行数据测试一下,不用指定created_date的值:
INSERT INTO your_table (username, email) VALUES ('john_doe', 'john@example.com');
然后查询这行数据:
SELECT created_date FROM your_table WHERE username = 'john_doe';
你会得到类似2024-05-20这样的结果,完全符合只存日期的需求。
额外说明
- 如果需要确保这个列在插入后不会被自动更新,这个默认值方案就足够了;如果后续有更新行时也要同步更新日期的需求,那可以再结合触发器实现,但这已经超出你当前的提问范围啦。
CURRENT_DATE()函数在所有支持的MariaDB版本中都能正常工作,兼容性拉满。
内容的提问来源于stack exchange,提问作者Ionized
相关产品推荐
相关产品推荐

