从另一个表复制时更新行的时间戳

时间:2017-10-11 12:48:14

标签: mysql timestamp copy

我已经在这方面工作了一段时间,我还没有能够提出解决方案,所以我不确定这是否可行,但任何帮助都是非常感谢。

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

  

CREATE TABLE test(时间戳NULL DEFAULT NULL);

     

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

然后我在" test"中创建一个条目。具有NULL值的表,即没有给定时间:

  

INSERT INTO test VALUES(NULL);

然后我想从" test"中复制NULL值。表到" test_copy_to"表格如下:

  

INSERT INTO test_copy_to SELECT * FROM test;

第一个问题是" test_copy_to"不接受NULL值,这是在第一个表中初始化的值。然而,我想要实现的是能够复制" test" (虽然具有空值)到" test_copy_to"这样时间戳就会更新到从一个表复制到另一个表的时间。我已尝试在变量时使用UPDATE,但这似乎不起作用。无论如何,我可以创建表,使其以这种方式运行吗?

1 个答案:

答案 0 :(得分:2)

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

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