Mysql
是否可以在 MySQL 5.7 中自動生成 Unix 毫秒時間戳
我在 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,但編寫一個觸發器來設置該值。