MySql无法更新日期时间字段-未找到记录

MySql无法更新日期时间字段-未找到记录,mysql,sql,heidisql,Mysql,Sql,Heidisql,我在MySql 5.6.10中有一个表,定义如下: 当我对id_failed_delivery_log列上的特定记录筛选执行select查询(从HeidiSQL客户端)时,会成功找到该记录,但当我对UPDATE命令使用相同的筛选时,则不会找到任何记录,也不会报告任何错误: 当我使用相同的过滤器更新不同的列时,更新工作正常,我可以看到更新的值。然后,这个特定列的更新出现了问题 我还尝试使用时间函数而不是硬编码的日期值进行更新,例如使用now()函数,但仍然得到相同的结果,并且没有找到记录 可能

我在MySql 5.6.10中有一个表,定义如下:

当我对id_failed_delivery_log列上的特定记录筛选执行select查询(从HeidiSQL客户端)时,会成功找到该记录,但当我对UPDATE命令使用相同的筛选时,则不会找到任何记录,也不会报告任何错误:

当我使用相同的过滤器更新不同的列时,更新工作正常,我可以看到更新的值。然后,这个特定列的更新出现了问题

我还尝试使用时间函数而不是硬编码的日期值进行更新,例如使用now()函数,但仍然得到相同的结果,并且没有找到记录


可能是因为“默认”值设置为当前时间戳吗?

经过进一步调查,我找到了无法更新该字段的原因。我并不完全熟悉数据库定义,我发现在同一个模式中有一个触发器,它迫使date_created列保持相同的值:

SET @OLDTMP_SQL_MODE=@@SQL_MODE, SQL_MODE='STRICT_ALL_TABLES';
DELIMITER //
CREATE TRIGGER `failed_delivery_log_before_update` BEFORE UPDATE ON 
`failed_delivery_log` FOR EACH ROW BEGIN

    SET NEW.date_created = OLD.date_created ; 

END//
DELIMITER ;
SET SQL_MODE=@OLDTMP_SQL_MODE;

为了测试,我暂时移除了这个触发器。一旦删除,更新后的应用程序工作正常。SQL客户端中未报告触发器执行,所以很难找出它的执行情况。

有人能解释一下为什么我的问题被投了否定票吗?可能是因为你发布了照片而不是文本代码。我已经在我这方面进行了测试,默认使用了
CURRENT\u TIMESTAMP
,日期值根据update语句进行了更改。如果我更新其他列,则创建的日期列只会更改为当前时间戳。(关于HeidiSQL)