Navicat建表时“时间”字段使用datetime类型,将默认值设为CURRENT_TIMESTAMP报错

我使用的Navicat版本为:11.1.13(64位)企业版,Mysql版本为5.1。

搜索发现:

在MySQL 5.1版本中,对于时间字段的设置,你仍然可以使用TIMESTAMPDATETIME类型,但有一些限制和注意事项:

  1. TIMESTAMP类型
    • TIMESTAMP类型的字段可以自动设置为当前时间戳,使用CURRENT_TIMESTAMP作为默认值。
    • 你可以在插入记录时自动设置时间戳,也可以在记录更新时自动更新时间戳(使用ON UPDATE CURRENT_TIMESTAMP)。(我使用这种方法成功
  2. 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;也可以成功

 

 

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值