MySQL时间戳默认为空,而不是当前的时间戳
使用MySQL,我试图从日期列和时间列创建一个时间戳列。如果日期或时间列包含空值,MySQL会自动将MySQL时间戳默认为空,而不是当前的时间戳,mysql,sql,timestamp,Mysql,Sql,Timestamp,使用MySQL,我试图从日期列和时间列创建一个时间戳列。如果日期或时间列包含空值,MySQL会自动将TIMESTAMP列中的相应值设置为空值 是否有办法将其默认为NULL,而不是当前时间戳 比如: ALTER TABLE customers ADD s_timestamp TIMESTAMP; UPDATE customers SET s_timestamp = timestamp(s_date,s_time) DEFAULT NULL; 我想这应该行得通: ALTER TABLE c
TIMESTAMP
列中的相应值设置为空值
是否有办法将其默认为NULL
,而不是当前时间戳
比如:
ALTER TABLE customers ADD s_timestamp TIMESTAMP;
UPDATE customers
SET s_timestamp = timestamp(s_date,s_time) DEFAULT NULL;
我想这应该行得通:
ALTER TABLE customers ADD COLUMN s_timestamp TIMESTAMP DEFAULT NULL;
使用此查询添加列
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;
没有
TIMESTAMP
列在插入NULL
时具有空标记,因此如果您真的希望能够设置空标记,则必须显式地使该列可为空。请注意,问题是关于MySQL行为的。这对我很有效。我创建了这个表,在创建的过程中,我直接给了我的timestamp列NULL DEFAULT NULL
,它成功了!早些时候,我试图将timestamp列创建为column\u NAME DEFAULT NULL
,但这根本不起作用。