Mysql

是否可以在 MySQL 5.7 中自動生成 Unix 毫秒時間戳

  • March 30, 2021

我在 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 8.0 支持您顯示的表達式預設值。

MySQL 5.7 預設不支持表達式。只有 NULL,或一個常量值,或者CURRENT_TIMESTAMP如果它是一個 DATETIME 或 TIMESTAMP 列。

對於 MySQL 5.7,您有兩種選擇:

  • 將列聲明為created_time datetime(3) default current_timestamp(3)
  • 像您一樣使用 BIGINT,但編寫一個觸發器來設置該值。

引用自:https://dba.stackexchange.com/questions/288926