2017-10-11 12 views
1

私はこれでしばらくの間作業していましたが、解決策を考え出すことができませんでした。可能ですが、どんな助けも大歓迎です。別のテーブルからコピーしたときに行のタイムスタンプを更新する

次のように私は非常に基本的な構造を持つ2つのテーブルを有する:

はTABLEテスト(タイムスタンプNULLデフォルトNULL)を作成します。

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

それからすなわちない所定の時間NULL値を有する「試験」テーブルにエントリを作成する:試験値(NULL)INTO

INSERTと、

次のように私は、 "test_copy_to" テーブルに "テスト" テーブルからNULL値をコピーしたいと思います:

INSERT INTOテストSELECT * FROM test_copy_to。

最初の問題は、 "test_copy_to"が最初のテーブルで初期化されるNULL値を受け入れないことです。しかし、私が達成したいのは、 "test"(ヌル値を持つ)から "test_copy_to"に値をコピーして、タイムスタンプが1つのテーブルから別のテーブルにコピーされた時刻に更新できることですその他。私は可変時間にUPDATEを使用しようとしましたが、うまくいかないようです。とにかく、このように動作するようにテーブルを作成できますか?代わりに

答えて

2

値はnull

INSERT INTO test_copy_to 
SELECT coalesce(`time`, CURRENT_TIMESTAMP) FROM test; 
あるいくつかのデフォルト値を提供するために、以下のような COALESCE()機能を使用します
関連する問題