繁体   English   中英

将时间戳值从一列复制到另一列失败

[英]Copy timestamp value fails from one column to another

我有一个表,其中包含两个由-

CREATE TABLE `test` 
(`id` INT NOT NULL AUTO_INCREMENT , 
`first_date` TIMESTAMP NULL , 
`second_date` TIMESTAMP on update CURRENT_TIMESTAMP() NULL , 
PRIMARY KEY (`id`)) ENGINE = InnoDB;

我使用插入了两行

INSERT INTO `test` (`id`, `first_date`, `second_date`) 
VALUES (NULL, NULL, '2017-10-18 17:02:14'), (NULL, NULL, '2017-10-18 17:02:14');

现在,我需要将第二个日期值复制到第一个日期列,但是当我尝试更新查询时,两个日期值都将更新为今天的日期。

update test set first_date = second_date where id=<row_id>

id | first_date          | second_date
----------------------------------------------
3  | 2017-11-17 16:09:03 | 2017-11-17 16:09:29 --> This value was 
4  | NULL                | 2017-10-18 17:02:14     "2017-10-18 17:02:14" 
5  | NULL                | 2017-10-18 17:02:14      before the update query.

不知何故,second_date的on update CURRENT_TIMESTAMP()属性在这里造成了问题。 如何在不影响second_date的现有值的情况下从第二列复制值?

以下查询应帮助您从第二列复制值,而不影响second_date的现有值:

UPDATE test SET first_date = second_date , second_date = second_date WHERE  id=<row_id>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM