MySQL TIMESTAMP 默认为 NULL,而不是 CURRENT_TIMESTAMP

标签 mysql sql timestamp

使用 MySQL,我正在尝试从日期列和时间列创建时间戳列。如果日期或时间列包含 NULL 值,MySQL 会自动将 TIMESTAMP 列中的相应值设置为 CURRENT_TIMESTAMP .

有没有办法让它默认为 NULL,而不是 CURRENT_TIMESTAMP

类似:

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 NULL DEFAULT NULL;

而且,如果您只想在更新时获取当前时间戳:

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

关于MySQL TIMESTAMP 默认为 NULL,而不是 CURRENT_TIMESTAMP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20520443/

相关文章:

PHP、MySQl 查询未运行

mysql - 仅更新别名 updateAt 属性时, Sequelize 更新不起作用

sql - 通过映射将列类型更改为枚举

mysql - 在 MySQL 中不可用

php - 英语到时间

mysql - 从 information_schema 获取所有表,MySQL

Mysql 订单日期 按 m/h/s

sql - 将数据从一个表复制到另一个表时,使用参数还是列值更好?

php - Doctrine2 - 类型时间戳 - 默认值

mysql - 从时间戳列中选择当前月份记录 mysql