2017-10-11 41 views
1

我一直在這裏工作了一段時間,我一直沒有能夠想出一個解決方案,所以我不知道這是否甚至可能是可能的,但任何幫助,不勝感激。當從另一個表複製時更新行的時間戳

我有一個非常基本的結構的兩個表如下:

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,但似乎沒有工作。無論如何,我可以創建這樣的表,使其表現得如此?

回答

2

而是使用COALESCE()函數像下面提供一些默認值,其中所述值是null

INSERT INTO test_copy_to 
SELECT coalesce(`time`, CURRENT_TIMESTAMP) FROM test; 
相關問題