当从另一个表复制时更新行的时间戳
问题描述:
我一直在这里工作了一段时间,我一直没有能够想出一个解决方案,所以我不知道这是否甚至可能是可能的,但任何帮助,不胜感激。当从另一个表复制时更新行的时间戳
我有一个非常基本的结构的两个表如下:
CREATE TABLE测试(时间时间戳NULL DEFAULT NULL);
CREATE TABLE test_copy_to(time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP);
我然后创建在具有NULL值即,没有给定时间 “测试” 表中的条目:
INSERT INTO测试值(NULL);
然后我想NULL值从 “测试” 表复制到 “test_copy_to” 表如下:
INSERT INTO test_copy_to SELECT * FROM测试;
第一个问题是“test_copy_to”不会接受第一个表中初始化的NULL值。然而,我想实现的是能够将“test”中的值(具有空值)复制到“test_copy_to”,以便将时间戳更新为从一个表复制到其他。我试过在可变时间上使用UPDATE,但似乎没有工作。无论如何,我可以创建这样的表,使其表现得如此?
答
而是使用COALESCE()
函数像下面提供一些默认值,其中所述值是null
INSERT INTO test_copy_to
SELECT coalesce(`time`, CURRENT_TIMESTAMP) FROM test;