我有一张桌子,我有一个date专栏.每当我插入一个具有当前日期的新注册表时,MySQL是否有办法自动填充此字段?或者这是默认自动生成的吗?
PS:我正在使用PHPMyAdmin
MLB*_*BDG 25
虽然它是一个旧帖子,但是这个图像可能会有所帮助,因为它更明确:(对于phpMyAdmin用户)
此配置使用以下值设置该字段:
2015-12-11 07:50:47
PS:请注意,时间戳将设置服务器的时间!! (即上面的例子得到了太平洋时间(07:50:47)的时间,但它可能来自当地时间16:50:47的西班牙用户)记住这一点.
此外,如果您已经有"创建日期",则可能需要另一列在更新时更新修改日期:您只需在属性字段中设置更新CURRENT TIME STAMP.
准备摇滚!
你必须使用
现在()
要填充当前时间的函数。
IE:
INSERT INTO user_rights (`user_id`,`right`,`group_id`,`created_date`) VALUES ( '42', '160', '1', now());
Run Code Online (Sandbox Code Playgroud)
我意识到这可能不是问题的直接答案,但我相信这是最有用的解决方案。
我强烈建议对相关列使用 DATETIME 或 TIMESTAMP 数据类型。
如果您使用的是最新版本的 MySQL,MySQL 将为您完成这项工作。
详细信息:
要非常清楚,从 5.6.5 开始,对于 TIMESTAMP 和 DATETIME 数据类型,您可以执行以下操作:
方法如下:
CREATE TABLE 语句中的示例:
CREATE TABLE t1 (
ts1 DATETIME ON UPDATE CURRENT_TIMESTAMP
,ts2 DATETIME DEFAULT NOW()
);
Run Code Online (Sandbox Code Playgroud)
请注意,DATETIME 可以替换为 TIMESTAMP 以获得有效的相同功能。
此外,我建议在 TIMESTAMP 上使用 DATETIME 数据类型,因为 DATETIME 可以支持更大范围的日期。值得一提的是,对于那些少数重要的情况,TIMESTAMP 较小。
有关更多详细信息,请在此处阅读我的回答:https : //stackoverflow.com/a/26117532/1748266
遗憾的是,MySQL 不允许将常量以外的值指定为除TIMESTAMPs 之外的列的默认值。
这是 MySQL 8.0+ 版本中提供的功能,但对于旧版本,定义默认数据库的唯一解决方案是使用触发器。
| 归档时间: |
|
| 查看次数: |
68700 次 |
| 最近记录: |