mysql timestamp 默认时间为当前时间

mysql timestamp 默认时间为当前时间时,更新数据时此字段的时间被更新为当前时间(更新语句中没有对此字段进行更新)

MySQL 中,你可以将时间字段(如 `DATETIME` 或 `TIMESTAMP`)的默认值设置为当前时间。这通常用于记录某条记录的创建时间或更新时间。可以通过 `DEFAULT CURRENT_TIMESTAMP` 来实现。 ### 示例:创建表时设置默认时间当前时间 ```sql CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ); ``` ### 字段解释: - `created_at DATETIME DEFAULT CURRENT_TIMESTAMP` 表示该字段默认值为插入记录时的当前时间。 - `updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP` 表示该字段默认当前时间,并且每次记录被更新时,自动更新为当前时间。 --- ### 已有表中添加默认当前时间 如果你已经有一个表,想为某个时间字段设置默认值为当前时间,可以使用 `ALTER TABLE`: ```sql ALTER TABLE users MODIFY COLUMN created_at DATETIME DEFAULT CURRENT_TIMESTAMP; ALTER TABLE users MODIFY COLUMN updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; ``` --- ### 使用 TIMESTAMP 类型的注意事项 `TIMESTAMP` 也支持默认当前时间,且占用空间更小(4字节 vs `DATETIME` 的8字节),但它的范围较小(1970-2038年)。用法类似: ```sql CREATE TABLE logs ( id INT AUTO_INCREMENT PRIMARY KEY, message TEXT, log_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP ); ``` --- ### 插入数据测试 ```sql INSERT INTO users (name) VALUES ('Alice'); ``` 此时 `created_at` 和 `updated_at` 都会自动填充为当前时间。 之后更新这条记录: ```sql UPDATE users SET name = 'Bob' WHERE id = 1; ``` `updated_at` 会自动更新为新的当前时间,而 `created_at` 保持不变。 --- ### 注意事项 - `CURRENT_TIMESTAMP` 可以用于 `DATETIME` 和 `TIMESTAMP` 类型。 - 在 MySQL 5.6.5 以上版本,`DATETIME` 也支持 `DEFAULT CURRENT_TIMESTAMP` 和 `ON UPDATE CURRENT_TIMESTAMP`。 - 如果你使用老版本 MySQL,可能需要使用触发器来实现类似功能。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值