web-dev-qa-db-ja.com

MySQL TIMESTAMPをデフォルトのNULLに設定し、CURRENT_TIMESTAMPではない

MySQLを使用して、日付列と時刻列からタイムスタンプ列を作成しようとしています。日付または時刻列にNULL値が含まれている場合、MySQLはTIMESTAMP列の対応する値を CURRENT_TIMESTAMP に自動的に設定します。

CURRENT_TIMESTAMPの代わりにNULLをデフォルトにする方法はありますか?

何かのようなもの:

ALTER TABLE customers ADD s_timestamp TIMESTAMP;
UPDATE customers
    SET s_timestamp = timestamp(s_date,s_time) DEFAULT NULL;
24
natsuki_2002

このクエリを使用して列を追加します

ALTER TABLE `customers` 
ADD COLUMN `s_timestamp` TIMESTAMP NULL DEFAULT NULL;

そして、更新時にのみ現在のタイムスタンプを取得したい場合:

ALTER TABLE `customers` 
ADD COLUMN `s_timestamp` TIMESTAMP NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP;
55
zessx