created_at需要是TIMESTAMP类型的,并且由mysql自动生成
要将 created_at
字段设置为 TIMESTAMP
类型,并且让 MySQL 自动生成插入时的时间戳,您可以在创建表时为该字段指定默认值为 CURRENT_TIMESTAMP
。这样,当新记录插入时,MySQL 会自动生成当前的时间戳。
下面是更新后的表创建语句,包含您需要的 created_at
字段自动生成功能:
示例表创建语句
CREATE TABLE your_table_name (
gid BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
code VARCHAR(255),
name VARCHAR(255),
alias VARCHAR(255),
display VARCHAR(255),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 自动生成插入时的时间戳
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, -- 自动生成和更新时更新的时间戳
created_by BIGINT,
updated_by BIGINT,
description TEXT
);
解释
-
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
:TIMESTAMP
数据类型用于存储日期和时间。DEFAULT CURRENT_TIMESTAMP
表示当插入新记录时,MySQL 会自动将created_at
字段的值设置为当前的日期和时间。
-
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
:- 该字段在插入时设置为当前时间,并且在更新记录时会自动更新为最新的时间戳。这确保了
updated_at
字段始终反映最后一次修改的时间。
- 该字段在插入时设置为当前时间,并且在更新记录时会自动更新为最新的时间戳。这确保了
注意事项
- 自动生成的
created_at
字段值只会在插入时生成,并且不会在后续的更新操作中更改。 updated_at
字段则不仅会在插入时设置初始值,还会在记录更新时自动修改为最新的时间戳。
通过这种方式,您可以确保 created_at
字段由 MySQL 自动生成,并且可以用 updated_at
跟踪记录的最后一次修改时间。