【问题标题】:Updating the timestamp of a row when copied from another table从另一个表复制时更新行的时间戳
【发布时间】:2018-03-23 03:37:43
【问题描述】:

我已经为此工作了一段时间,但我无法提出解决方案,所以我不确定这是否可能,但非常感谢任何帮助。

我有两张表,其基本结构如下:

CREATE TABLE 测试(时间时间戳 NULL DEFAULT NULL );

CREATE TABLE test_copy_to (time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP);

然后我在“测试”表中创建一个具有 NULL 值的条目,即没有给定时间:

INSERT INTO 测试值(NULL);

然后我想将 NULL 值从“test”表复制到“test_copy_to”表,如下所示:

INSERT INTO test_copy_to SELECT * FROM test;

第一个问题是“test_copy_to”不接受空值,这是在第一个表中初始化的值。但是,我想要实现的是能够将值从“test”(同时具有空值)复制到“test_copy_to”,以便时间戳更新为它从一个表复制到的时间其他。我已经尝试在变量 time 上使用 UPDATE 但这似乎不起作用。无论如何我可以创建表以使其以这种方式运行吗?

【问题讨论】:

    标签: mysql timestamp copy


    【解决方案1】:

    改为使用下面的COALESCE() 函数来提供一些默认值,其中值为null

    INSERT INTO test_copy_to 
    SELECT coalesce(`time`, CURRENT_TIMESTAMP ) FROM test;
    

    【讨论】:

      猜你喜欢
      • 2018-08-24
      • 2021-02-05
      • 2012-10-07
      • 2014-10-12
      • 1970-01-01
      • 2015-03-25
      • 2020-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多