首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

更新时的Yii2 update列和postgres中的默认值current timestamp

在Yii2中,当我们使用ActiveRecord进行数据库操作时,可以使用updateColumn方法来更新某一列的值。在更新时,如果我们想要给该列设置默认值为当前时间,可以使用PostgreSQL的current_timestamp函数作为默认值。

首先,需要确保我们的数据库表中的该列已经设置了默认值为NULL。然后,我们可以通过以下代码来更新该列的值为当前时间:

代码语言:txt
复制
$model = YourModel::findOne($id); // 根据ID获取要更新的记录

// 更新列的值为当前时间
$model->updateColumn('your_column_name', new yii\db\Expression('CURRENT_TIMESTAMP'));

// 保存更改
$model->save();

这里,我们使用了updateColumn方法来更新指定列的值。在updateColumn方法中,我们传递了要更新的列名和一个yii\db\Expression对象,该对象表示一个原始SQL表达式。通过CURRENT_TIMESTAMP来表示当前时间,以此作为列的默认值。

值得注意的是,在使用updateColumn方法更新数据库列时,并不会触发ActiveRecord的事件,因此不会进行数据验证和触发其他相关逻辑。如果需要完整的模型更新过程,可以考虑直接设置属性并调用save方法。

对于Yii2中的ActiveRecord更新操作和PostgreSQL中current_timestamp的默认值,暂未找到与腾讯云相关的产品和产品介绍链接地址。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

tk.mybatis通用插件updateByPrimaryKeySelective无法自动更新ON UPDATE CURRENT_TIMESTAMP解决办法

NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '时间戳', PRIMARY KEY (`id`),...,设置了update, 让mysql自动更新成当前时间,这样只要记录有变化,通过这一就能知道什么时候变化(这也是很多公司数据库开发规范之一) 然后tk.mybatis里提供了一个很方便方法:updateByPrimaryKeySelective...运行后,发现datachange_lasttime这并没按预期那样,更新成当前时间,仍然是旧时间戳。...updateByPrimaryKeySelective原理,是根据entity对象属性值,是否为null,如果为null,则最终生成update语句里,将忽略该,否则会更新。...entity从数据库里取出来时,DatachangeLasttime属性上已经有值了,不为null,所以更新,又把这个旧值给update回去了!

3.3K10

项目从 MySQL 切换 PostgreSQL,踩了太多坑!!!

transaction is aborted, commands ignored until end of transaction block Postgres数据库,同一事务如果某次数据库操作中出错的话...= boolean SELECT xx fom xx WHERE enable = ture 错误原因:enable字段是smallint类型查询却传了一个布尔值类型 2、update更新转换异常信息...3.2、批量设置时间默认值脚本 批量修改模式名下所有字段类型为timestamp并且字段名为 create_time 或者 update_time字段默认值CURRENT_TIMESTAMP...如果java字段是LocalDateTime原先mysql时间类型到postgres后不要用TIMESTAMPTZ类型 4、mysql一般用tinyint类型javaBoolean字段对应并且在查询更新支持自动转换...如果不想这样,只能修改代码所有表对象字段类型传参类型保证与postgres数据库字段类型对应,但是有些依赖框架底层自己操作数据库可能就无法修改源码了,只能修改数据库表字段类型了。

50510
  • mysql timestamp

    想去掉“自动更新:ON UPDATE CURRENT_TIMESTAMP” 只写DEFAULT CURRENT_TIMESTAMP,则会把mysql系统默认“自动更新:ON UPDATE CURRENT_TIMESTAMP...2、如果ON UPDATE CURRENT_TIMESTAMP(注意是系统默认加上),TIMESTAMP不可以设置值,只能由数据库自动去修改。...(原文这个说法不对,timestamp可以修改,只不过即使改完,也会被ON UPDATE CURRENT_TIMESTAMP覆盖掉) 3、一个表可以存在多个TIMESTAMP,但只有一个会根据数据更新而改变为数据库系统当前值...因此,一个表中有多个TIMESTAMP 是没有意义,实际上一个表只设定一个TIMESTAMP。 4、TIMESTAMP默认值CURRENT_TIMESTAMP常量值。...  这个语句含义,a字段默认值CURRENT_TIMESTAMP,当纪录更新时候,自动将a字段值设置为 CURRENT_TIMESTAMP

    1.8K20

    如何在openGauss 2.1.0使用Job?

    Job类似Unixcrontab,有定时执行功能,可以在指定时间点或每天某个时间点等自行执行任务。...在各类系统使用运行过程,经常会遇到需要定时完成任务,比如定时更新数据,定时统计数据生成报表等等,这些工作都可以使用Job来完成。...next_time timestamp IN 否 下次作业运行时间。默认值为当前系统时间(sysdate)。如果是过去时间,在提交作业表示立即执行。...next_time timestamp IN 是 下次运行时间。如果该参数为空值,则不更新指定Jobnext_time值,否则更新指定Jobnext_time值。...支持一个或多个‘DML’,‘匿名块’,‘调用存储过程语句’或3种混合场景。 nextdate timestamp IN 否 下次作业运行时间。默认值为当前系统时间(sysdate)。

    6.4K20

    故障分析 | MySQL 迁移后 timestamp cannot be null

    TIMESTAMP DATETIME 都可以自动初始化并且可以更新为当前日期时间,还可以将当前时间戳指定为默认值、自动更新值或者两个同时使用都可以。...2. explicit_defaults_for_timestamp 这个系统变量决定了 MySQL 是否为 TIMESTAMP 默认值 NULL 值处理启用某些非标准行为。...那么参数值具体为何能操纵 TIMESTAMP 默认值 null 值呢?继续测试分析。 测试分析 1....表第一个 TIMESTAMP ,如果没有明确地用 NULL 属性,DEFAULT 属性或 ON UPDATE 属性声明,将自动用 DEFAULT CURRENT_TIMESTAMP ON UPDATE...更新其他也会依据 ‘ON UPDATE CURRENT_TIMESTAMP’ 来更新为当前时间戳。

    2.1K31

    SQL命令 CREATE TABLE(三)

    因此,当插入更新性能是一个重要考虑因素,建议避免这种类型唯一约束。...它们在各自参考页中进行了描述。当用作默认值,可以指定CURRENT_TIME或TIMESTAMP函数,有没有精度值。...可以将CURRENT_TIMESTAMP指定为数据类型为%Library.PosiTime或%Library.TimeStamp字段默认值。当前日期时间以字段数据类型指定格式存储。...这是定义字段快捷语法,每当表行被更新,该字段总是被计算。此功能最常见用途是在表定义一,该包含上次更新该行时间戳值。...TIMESTAMP DEFAULT Current_Timestamp(6) ON UPDATE Current_Timestamp(6) ) 在本例,如果没有为RowTS字段指定显式值,则DEFAULT

    1.2K20

    Kubernetes滚动更新(Rolling Update滚动回滚(Rollback)过程策略,以及相关方法配置

    图片滚动更新(Rolling Update滚动回滚(Rollback)滚动更新(Rolling Update)是Kubernetes中一种用于更新应用程序版本策略,它可以在不中断服务情况下逐步替换旧版本...滚动回滚(Rollback)是指在发生意外情况或者新版本出现问题,将应用程序回滚到之前版本。Kubernetes提供了一种机制来简化回滚过程,以便快速恢复应用运行。...下面是滚动更新和滚动回滚过程策略:滚动更新过程:创建一个新版本Pod副本,并将其加入到Service或Ingress后端。...重复步骤2步骤3,直到所有旧版本Pod都被替换为新版本。滚动更新策略:平滑替换:限制每次更新速度,以避免大量Pod同时重启导致服务不可用。...可以通过控制Pod创建速率、健康检查时间间隔超时时间等参数来实现平滑替换。容忍度:可以设置滚动更新期间允许故障容忍度,即在滚动更新过程,最多容忍多少个副本不可用。

    2.2K61

    DATETIME与TIMESTAMP一些区别与问题

    今天遇到一个问题,明明数据有更新update_time字段却还停留在创建数据时候。 按常理来说这个字段应该是自动更新才对。...查了一下表结构, `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP 发现update_time字段类型是datetime 由此牵扯出两个问题...,(1)timestamp与datetime区别;(2)CURRENT_TIMESTAMP为什么能用于datetime类型 timestamp与datetime区别 a)DATETIME默认值为null...;TIMESTAMP字段默认不为空(not null),默认值为当前时间(CURRENT_TIMESTAMP),如果不做特殊处理,并且update语句中没有指定该更新值,则默认更新为当前时间。...查询,将其又转化为客户端当前时区进行返回。而对于DATETIME,不做任何改变,基本上是原样输入输出。

    95320

    技术分享 | MySQL TIMESTAMP 类型字段非空默认值属性影响

    同事说他通过某款商业数据同步软件将一个 MySQL 5.7.28 库同步到 MySQL 5.7.20 ,如果表中含有 TIMESTAMP 数据类型、缺省值为 current_timestamp...null default current_timestamp on update current_timestamp ); 同步软件报错日志如下,提示为字段 updatetime 设置了无效默认值...(2) 表第一个 TIMESTAMP ,如果没有明确地用 NULL 属性,DEFAULT 属性或 ON UPDATE 属性声明,将自动用 DEFAULT CURRENT_TIMESTAMP ON...TIMESTAMP 会自动使用 NOT NULL 属性声明,按照上述规则(2),表第一个 TIMESTAMP ,如果没有明确地用 NULL 属性,DEFAULT 属性或 ON UPDATE 属性声明...,将自动用 DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 属性声明,假设这个建表语句中只有一个 TIMESTAMP 类型字段 createtime

    5K20

    小白学习MySQL - TIMESTAMP类型字段非空默认值属性影响

    ,如果表中含有TIMESTAMP数据类型、缺省值为current_timestamp字段,这些表同步任务就都失败了,而另外一些包含了DATETIME数据类型表就同步成功了,不知道这是不是MySQL... default current_timestamp on update current_timestamp ); 同步软件报错日志如下,提示为字段updatetime设置了无效默认值, ERROR_GENERAL...(2) 表第一个TIMESTAMP,如果没有明确地用NULL属性,DEFAULT属性或ON UPDATE属性声明,将自动用DEFAULT CURRENT_TIMESTAMPON UPDATE CURRENT_TIMESTAMP...会自动使用NOT NULL属性声明,按照上述规则(2),表第一个TIMESTAMP,如果没有明确地用NULL属性,DEFAULT属性或ON UPDATE属性声明,将自动用DEFAULT CURRENT_TIMESTAMP...ON UPDATE CURRENT_TIMESTAMP属性声明,假设这个建表语句中只有一个TIMESTAMP类型字段createtime,他结构会改成, 按照上述规则(3),在第一个之后TIMESTAMP

    4.7K40

    进阶数据库系列(十):PostgreSQL 视图与触发器

    query:#提供视图一个 SELECT 或者 VALUES 命令。 WITH [ CASCADED | LOCAL ] CHECK OPTION:#这个选项控制自动可更新视图行为。...这个选项被指定时,将检查该视图上 INSERT UPDATE 命令以确保新行满足视图定义条件(也就是,将检查新行来确保通过视图能看到它们)。如果新行不满足条件,更新将被拒绝。...column_name:#现有名称。 new_column_name:#现有新名称。 IF EXISTS:#该视图不存在不要抛出一个错误。这种情况下会发出一个提示。...SET/DROP DEFAULT:#这些形式为一个设置或者移除默认值。对于任何在该视图上 INSERT 或者 UPDATE 命令,一个视图列默认值会在引用该视图任何规则或触发器之前被替换进来。...,SQL语句如下: SELECT * FROM timedb; 查看修改触发器 可在pgAdmin操作 触发器使用 创建一个account表,然后创建一个触发器,用于检测表accountname

    1K10

    关于mysql字段时间类型timestamp默认值为当前时间问题--Java学习网

    今天把应用部署到AWS上发现后台修改内容提交后程序报错,经过排查发现是更新数据时候,有张数据表一个timestamp类型字段默认值变成了"0000-00-00 00:00:00.000000"格式...在mysql该字段创建语句如下 `XXX` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, DEFAULT...CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 正常情况下 应该是当前数据更改时间格式 因为在本地开发环境测试过,没有该问题,应用环境一直,唯一不同是...“explicit_defaults_for_timestamp值依旧是OFF,也有两种方法可以禁用 1> 用DEFAULT子句该该指定一个默认值 2> 为该指定NULL属性...,会默认把default参数组继承过来,当时并不知道这里01是怎么对应onoff,所以就把值改成了1.然后重启rds。

    2.4K20

    第11章、数据类型

    在 MySQL 5.7 已经禁用了YEAR(2); 自动初始化更新 TIMESTAMP 与 DATETIME 表格 TIMESTAMP 或 DATETIME 可以初始化当前时间作为默认值...当指定没有值,使用当前时间作为默认时间。 当该行任何其他值从其当前值更改时,自动更新会自动更新为当前时间戳。...要设置自动更新属性,在定义使用以下语句(顺序不相关): DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP CURRENT_TIMESTAMP...要 MySQL 5.7,新增DATETIME支持设置默认值自动更新。在之前版本,你如果尝试设置将会得到一个错误。...值,则MySQL不指定默认值; 当一个明确表明为NOT NULL,被INSERT或者UPDATE数据为NULL

    1.7K20
    领券