mysql 设置时间字段为 DEFAULT CURRENT_TIMESTAMP
时间: 2023-09-24 09:03:01 浏览: 110
在 MySQL 中,可以使用 `DEFAULT` 关键字将时间字段设置为默认值为当前时间。
假设要在创建表时将一个名为 `create_time` 的时间字段设置为默认值为当前时间,可以使用以下语句:
```
CREATE TABLE table_name (
id INT PRIMARY KEY AUTO_INCREMENT,
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
other_column VARCHAR(255)
);
```
这样,在未指定 `create_time` 值时,`create_time` 字段就会被设置为当前时间。
如果要更新时间字段为当前时间,可以使用以下语句:
```
UPDATE table_name SET create_time = DEFAULT WHERE id = your_id;
```
其中,`your_id` 是要更新的记录的 ID。这样,`create_time` 字段就会被设置为当前时间。
相关问题
mysql 修改时间字段为 DEFAULT CURRENT_TIMESTAMP
如果您想将已经存在的 MySQL 表中的时间字段修改为 `DEFAULT CURRENT_TIMESTAMP`,可以使用以下的 SQL 语句:
```
ALTER TABLE table_name MODIFY COLUMN column_name TIMESTAMP DEFAULT CURRENT_TIMESTAMP;
```
其中,`table_name` 是您要修改的表名,`column_name` 是您要修改的时间字段名。执行此语句后,该字段的默认值将被设置为当前时间。如果您需要将字段的默认值设置为 NULL,请使用以下语句:
```
ALTER TABLE table_name MODIFY COLUMN column_name TIMESTAMP NULL DEFAULT NULL;
```
同样地,`table_name` 和 `column_name` 均需要替换为您要修改的表名和字段名。
那低版本的MySQL怎么定义DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
在低版本的MySQL中,可以使用Triggers来达到类似的效果。具体实现方法如下:
首先,在表中创建两个字段,一个用于存储创建时间,一个用于存储更新时间。例如:
```
CREATE TABLE example (
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
update_time TIMESTAMP DEFAULT '0000-00-00 00:00:00'
)
```
然后,创建两个Trigger,一个用于在插入数据时自动设置创建时间,一个用于在更新数据时自动更新更新时间。例如:
```
CREATE TRIGGER example_insert_trigger
BEFORE INSERT ON example
FOR EACH ROW
SET NEW.create_time = CURRENT_TIMESTAMP;
CREATE TRIGGER example_update_trigger
BEFORE UPDATE ON example
FOR EACH ROW
SET NEW.update_time = CURRENT_TIMESTAMP;
```
这样,每当插入一条新数据时,create_time字段会自动设置为当前时间戳;每当更新一条数据时,update_time字段会自动更新为当前时间戳。
阅读全文