Trong quá trình xây dựng cơ sở dữ liệu, việc theo dõi thời gian cập nhật hoặc tạo mới các bản ghi là vô cùng quan trọng. MySQL cung cấp một công cụ cực kỳ hữu ích cho việc này, đó chính là CURRENT_TIMESTAMP
.
CURRENT_TIMESTAMP
là một hàm được sử dụng để lấy dấu thời gian hiện tại của hệ thống dưới dạng YYYY-MM-DD HH:MM:SS
. Đây là một công cụ mạnh để đảm bảo rằng bạn có thể ghi lại thời điểm chính xác khi một bản ghi nào đó được tạo hoặc sửa đổi.
Cách sử dụng CURRENT_TIMESTAMP
Việc sử dụng CURRENT_TIMESTAMP
có thể được thực hiện trong nhiều ngữ cảnh khác nhau, bao gồm cả khi tạo bảng mới hoặc cập nhật bảng đã tồn tại. Dưới đây là một số cách thức phổ biến để sử dụng CURRENT_TIMESTAMP
.
Tạo bảng mới với CURRENT_TIMESTAMP
Khi tạo một bảng mới, bạn có thể sử dụng CURRENT_TIMESTAMP
để tự động ghi lại thời điểm mà mỗi bản ghi được thêm vào hoặc cập nhật. Ví dụ:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
Trong ví dụ trên:
created_at
sẽ tự động được thiết lập giá trị là thời gian hiện tại khi bản ghi được tạo.updated_at
sẽ tự động cập nhật giá trị thời gian hiện tại mỗi khi bản ghi được sửa đổi.
Cập nhật bảng hiện có
Nếu bạn đã có một bảng và muốn thêm các cột theo dõi thời gian, bạn có thể dùng lệnh ALTER TABLE
:
ALTER TABLE users
ADD COLUMN created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
ADD COLUMN updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
Sử dụng CURRENT_TIMESTAMP
trong lệnh INSERT
Bạn cũng có thể sử dụng CURRENT_TIMESTAMP
trong lệnh INSERT
để thiết lập thời gian cụ thể. Ví dụ:
INSERT INTO users (username, created_at, updated_at)
VALUES ('JohnDoe', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP);
Hoặc nếu bạn không muốn chỉ định cụ thể giá trị của cột thời gian, bạn có thể bỏ qua vì hệ thống sẽ tự động thêm:
INSERT INTO users (username)
VALUES ('JaneDoe');
Lúc này các cột created_at
và updated_at
sẽ tự động nhận giá trị CURRENT_TIMESTAMP
do đã được thiết lập khi tạo bảng.
Những lưu ý khi sử dụng CURRENT_TIMESTAMP
CURRENT_TIMESTAMP
hoạt động dựa trên thời gian của hệ thống máy chủ MySQL. Nếu thời gian máy chủ không chính xác, giá trị thu thập được cũng sẽ không chính xác.- Kể từ MySQL 5.6.5, các cột kiểu
TIMESTAMP
vàDATETIME
có khả năng tự động cập nhật với giá trịCURRENT_TIMESTAMP
. Trước đó, chỉ các cột kiểuTIMESTAMP
mới có tính năng này. - Bạn có thể sử dụng
CURRENT_TIMESTAMP
với độ chính xác lên tới micro giây bằng cách sử dụng cú phápCURRENT_TIMESTAMP(fsp)
, trong đófsp
là giá trị độ chính xác phân số giây (fractional seconds).
Bằng cách sử dụng CURRENT_TIMESTAMP
một cách hiệu quả, bạn có thể dễ dàng theo dõi và quản lý thời gian thay đổi của dữ liệu trong cơ sở dữ liệu MySQL của mình.
Comments