我使用的Navicat版本为:11.1.13(64位)企业版,Mysql版本为5.1。
搜索发现:
在MySQL 5.1版本中,对于时间字段的设置,你仍然可以使用TIMESTAMP
和DATETIME
类型,但有一些限制和注意事项:
TIMESTAMP
类型:TIMESTAMP
类型的字段可以自动设置为当前时间戳,使用CURRENT_TIMESTAMP
作为默认值。- 你可以在插入记录时自动设置时间戳,也可以在记录更新时自动更新时间戳(使用
ON UPDATE CURRENT_TIMESTAMP
)。(我使用这种方法成功)
DATETIME
类型:- 在MySQL 5.1中,
DATETIME
类型的字段不支持使用CURRENT_TIMESTAMP
作为默认值或自动更新值。 - 你需要在插入或更新记录时显式地为
DATETIME
字段提供值。但是,如果你想要使用DATETIME
类型,并且希望它在插入时自动设置为当前时间,你将需要使用触发器或其他应用程序逻辑来实现这一点,因为MySQL 5.1不支持将CURRENT_TIMESTAMP
用作DATETIME
字段的默认值。 -
使用触发器为
DATETIME
字段设置默认值如果你确实需要使用
DATETIME
类型,并且想要在插入记录时自动设置时间,你可以创建一个触发器来实现这一点:步骤如下:找到你要的表,在“设计表”里有一个“触发器”选项,点击编辑即可。例如,如果你想要在插入新记录时自动设置created_at
字段的值为当前时间,你可以编写如下的触发器语句:BEGIN IF NEW.created_at IS NULL THEN SET NEW.created_at = NOW(); END IF; END;(也可以成功)
- 在MySQL 5.1中,