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

标签 mysql timestamp copy

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

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

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/

相关文章:

php - MySQL 连接不工作 : 2002 No such file or directory

php - 使用 'grep -i ' DocumentRoot'httpd.conf' 安装 php

mysql - 使用 where 子句更新 MySQL

php - 删除大于 time() 的记录

java - 如何在android中将时间戳转换为日期?

python - 如何将 twitter API v2 时间戳解析为 python 日期时间

c++ - 使用 c_str() 时 std::string 的未定义行为

android - MySQL 可以本地连接,但不能远程连接

sql - 复制 1 列的表更改值并将其插入同一个表中

excel - 通过 .Copy() 创建一个新的 Excel 工作表并将其 move 到最后一个位置