我已经为此工作了一段时间,但我一直无法提出解决方案,所以我不确定这是否可行,但非常感谢您的帮助。
我有两个表,其基本结构如下:
CREATE TABLE test ( time timestamp NULL DEFAULT NULL );
CREATE TABLE test_copy_to ( time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP );
然后我在“测试”表中创建一个具有 NULL 值的条目,即没有给定时间:
INSERT INTO test VALUES (NULL);
然后我想将 NULL 值从“test”表复制到“test_copy_to”表,如下所示:
INSERT INTO test_copy_to SELECT * FROM test;
第一个问题是“test_copy_to”不接受在第一个表中初始化的 NULL 值。然而,我想要实现的是能够将值从“test”(同时具有空值)复制到“test_copy_to”,这样时间戳就会更新到它从一个表复制到其他。我试过在可变时间上使用 UPDATE,但这似乎不起作用。无论如何我可以创建表以使其以这种方式运行吗?
最佳答案
而是使用如下所示的 COALESCE()
函数提供一些默认值,其中值为 null
INSERT INTO test_copy_to
SELECT coalesce(`time`, CURRENT_TIMESTAMP ) FROM test;
关于mysql - 从另一个表复制时更新行的时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46688599/