📜  sql auto timestamp - SQL (1)

📅  最后修改于: 2023-12-03 15:05:17.012000             🧑  作者: Mango

SQL自动时间戳

在SQL中,自动时间戳是一种机制,它可以在插入或更新数据行时自动记录时间戳。这可以有效地跟踪数据的历史记录和更改。

时间戳类型

有两种常见的时间戳类型可以在SQL中使用:

  • DATETIME类型:它存储日期和时间信息,格式为YYYY-MM-DD HH:MI:SS
  • TIMESTAMP类型:它存储日期和时间信息,格式为YYYY-MM-DD HH:MI:SS,但它具有更高的精度,并且可以自动跟踪时区更改。
创建表格

在创建一个表格时,我们可以添加一个自动时间戳列:

CREATE TABLE MyTable (
   id INT PRIMARY KEY,
   name VARCHAR(20),
   created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

在这个例子中,当一个新数据行被插入时,created_at列会自动填写当前时间戳。如果我们想手动更新时间戳,我们可以使用CURRENT_TIMESTAMP函数。

在这个表格中,如果我们执行下面的插入语句:

INSERT INTO MyTable (id, name) VALUES (1, 'John');

created_at列将被设置为当前日期和时间。例如:2021-09-20 12:34:56

更新时间戳

如果我们希望更新一行中的数据时同时更新时间戳,我们可以使用ON UPDATE子句:

CREATE TABLE MyTable (
   id INT PRIMARY KEY,
   name VARCHAR(20),
   created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
   updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

当一个数据行被更新时,updated_at列将自动更新为当前时间戳。例如:2021-09-20 13:45:32

总结

SQL中的自动时间戳机制为数据行的历史记录和更改提供了方便的跟踪方法。我们可以使用DATETIMETIMESTAMP类型来存储时间戳,并使用DEFAULTON UPDATE子句来自动记录和更新时间戳。