Dolphin Asked: 2021-03-30 18:55:10 +0800 CST2021-03-30 18:55:10 +0800 CST 2021-03-30 18:55:10 +0800 CST 是否可以在 MySQL 5.7 中自动生成 Unix 毫秒时间戳 772 我在 MySQL 5.7 表中创建了一个created_time字段BIGINT,现在我想在插入记录时自动生成一个 Unix 毫秒时间戳。是否有可能做到这一点?我已经尝试了下面的代码,但它失败了: ALTER TABLE db.video_info MODIFY COLUMN created_time bigint(20) DEFAULT (ROUND(UNIX_TIMESTAMP(CURTIME(4)) * 1000)) NULL; mysql timestamp 1 个回答 Voted Best Answer Bill Karwin 2021-03-30T20:47:55+08:002021-03-30T20:47:55+08:00 MySQL 8.0 支持您显示的表达式默认值。 MySQL 5.7 默认不支持表达式。只有 NULL,或一个常量值,或者CURRENT_TIMESTAMP如果它是一个 DATETIME 或 TIMESTAMP 列。 对于 MySQL 5.7,您有两种选择: 将列声明为created_time datetime(3) default current_timestamp(3)。 像您一样使用 BIGINT,但编写一个触发器来设置该值。
MySQL 8.0 支持您显示的表达式默认值。
MySQL 5.7 默认不支持表达式。只有 NULL,或一个常量值,或者
CURRENT_TIMESTAMP
如果它是一个 DATETIME 或 TIMESTAMP 列。对于 MySQL 5.7,您有两种选择:
将列声明为
created_time datetime(3) default current_timestamp(3)
。像您一样使用 BIGINT,但编写一个触发器来设置该值。