0
に1列から失敗した -コピータイムスタンプ値は、私がして形成された二つのタイムスタンプフィールドを持つテーブルを持っている別の
CREATE TABLE `test`
(`id` INT NOT NULL AUTO_INCREMENT ,
`first_date` TIMESTAMP NULL ,
`second_date` TIMESTAMP on update CURRENT_TIMESTAMP() NULL ,
PRIMARY KEY (`id`)) ENGINE = InnoDB;
私は
INSERT INTO `test` (`id`, `first_date`, `second_date`)
VALUES (NULL, NULL, '2017-10-18 17:02:14'), (NULL, NULL, '2017-10-18 17:02:14');
を使用して2つの行を挿入さて、私は2番目をコピーする必要があります日付の値を最初の日付の列に追加しますが、更新クエリを試すと、日付の値が今日の日付に更新されます。
update test set first_date = second_date where id=<row_id>
id | first_date | second_date
----------------------------------------------
3 | 2017-11-17 16:09:03 | 2017-11-17 16:09:29 --> This value was
4 | NULL | 2017-10-18 17:02:14 "2017-10-18 17:02:14"
5 | NULL | 2017-10-18 17:02:14 before the update query.
どういうわけか、second_dateのon update CURRENT_TIMESTAMP()
属性は、ここで問題を作成しています。既存の値second_date
に影響を与えずに、2番目の列の値をコピーするにはどうすればよいですか?
私は属性を削除し、更新クエリを実行し、再び属性を再割り当てすることができます。進むべき他の方法はありますか? – jitendrapurohit
idと第2の日付値を持つ別のテーブルを作成します。これを更新クエリの入力として使用します。しかし、2番目の日付は更新されます。 (または、テーブルを修正して一時的に更新条件を削除してください...私の好きな選択肢ではありません) –
私は不思議ですが、どうして変わらないと思っていますか?それはアップデート*のために特別に設定されています!しかし、あなたがアップデートに 'second_date'を含めるだけであれば、必要なものを手に入れることができます。 https://www.db-fiddle.com/f/crg1DF4qn7wF5VKqu5Zy6R/0(これが標準的な動作であるかどうかわからない) – Yoshi