如何在 MySQL 中更新当前时间戳?
MySQL 是一个易于使用的 RDBMS。许多组织更喜欢使用它,因为它易于维护,更易于准备模式、存储过程、触发器和数据库维护。在本文中,让我们看看如何在 MySQL 中更新到 Current Timestamp。
第 1 步:创建数据库
首先我们创建数据库。这里的 GEEKSFORGEEKS 是数据库名称。
询问:
CREATE DATABASE GEEKSFORGEEKS;
步骤 2:使数据库处于活动状态
询问:
USE GEEKSFORGEEKS;
第 3 步:创建一个表employee,其中empLoginTime 字段为Timestamp。
询问:
CREATE TABLE employee
(
empId int NOT NULL,
empName VARCHAR(20),
empLoginTime TIMESTAMP
);
输出:
第四步:我们可以设置时区如下
询问:
SET TIME_ZONE = '+00:00';
如果我们想改变时区也是可以的。
第5步:现在,让我们插入记录
询问:
INSERT INTO employee
(
empId, empName, empLoginTime
)
VALUES
(1, 'XXX', '2021-01-01 00:00:01'),
(2, 'YYY', '2021-01-01 00:00:01'),
(3, 'ZZZ', '2021-01-01 00:00:01'),
(4, 'XYZ', '2021-01-01 00:00:01');
第 6 步:显示记录
询问:
SELECT * FROM employee;
输出:
此处,“empLoginTime”列表示上述时区模式中的值。
第 7 步:可以查看来自不同时区的数据。在那些时候,我们可以随意设置时区
询问:
SET time_zone ='+03:00';
SELECT * FROM employee;
输出:
在 MySQL 中,有一种工具可以为列保留默认的当前时间戳值。即empLoginTime 应该在员工登录系统时自动获取时间戳值。它相当于将列更新为当前时间戳值。
询问:
ALTER TABLE employee MODIFY
COLUMN empLoginTime
TIMESTAMP DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP;
现在让我们检查一下表的结构
询问:
DESC employee;
更新 current_timestamp 的优势:
对于 DEFAULT CURRENT_TIMESTAMP 和 ON UPDATE CURRENT_TIMESTAMP,“empLoginTime”列的默认值是当前时间戳,并自动更新为当前时间戳。
现在让我们在表中插入记录。由于我们有默认的 current_timestamp 并且更新到 current_timestamp,我们不需要提供“empLoginTime”的值。下面是执行此操作的查询。
询问:
**Since empLoginTime has the current
timestamp value, we no need to add the value
explicitly to that column**
INSERT INTO employee (empId, empName) VALUES
(5, 'ABC'),(6,'CDE');
显示记录
询问:
SELECT * FROM employee;
最好将“登录”和“注销”列以及类似类型的列设置为默认的 current_timestamp 值。如果未设置,我们可以轻松更新列值。
在 MySQL 工作台中,我们必须执行以下操作:
更新数据的步骤
- 导航到编辑-> 首选项。
- 然后单击“SQL 编辑器”选项卡并取消选中“安全更新”复选框。
- 然后单击查询 -> 重新连接到服务器。
现在执行你的 SQL 查询
询问:
UPDATE employee set empLoginTime = CURRENT_TIMESTAMP
WHERE empId < 4;
显示记录
询问:
SELECT * FROM employee;
通常,我们应该在表中包含“创建时间”和“修改时间”以获取更新的值。这将有助于审计目的。默认约束有助于设置当前时间戳值。在创建表的过程中,可以设置默认值,或者使用 ALTER 命令,我们可以设置默认约束。另一种方法是使用“UPDATE”命令,如上例所示。