Đưa ra lệnh SHOW CREATE TABLE whatever
Sau đó, hãy xem định nghĩa bảng .
Nó có thể có một dòng như thế này
logtime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
trong đó. DEFAULT CURRENT_TIMESTAMP có nghĩa là bất kỳ INSERT nào không có cài đặt tem thời gian rõ ràng sẽ sử dụng thời gian hiện tại. Tương tự, ON UPDATE CURRENT_TIMESTAMP có nghĩa là bất kỳ bản cập nhật nào không có dấu thời gian rõ ràng dẫn đến việc cập nhật giá trị dấu thời gian hiện tại.
Bạn có thể kiểm soát hành vi mặc định này khi tạo bảng của mình.
Hoặc, nếu cột dấu thời gian không được tạo chính xác ngay từ đầu, bạn có thể thay đổi nó.
ALTER TABLE whatevertable
CHANGE whatevercolumn
whatevercolumn TIMESTAMP NOT NULL
DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP;
Điều này sẽ khiến cả hai thao tác CHÈN và CẬP NHẬT trên bảng tự động cập nhật cột dấu thời gian của bạn. Nếu bạn muốn cập nhật whatevertable mà không thay đổi dấu thời gian, tức là,
thì bạn cần phát hành loại cập nhật này.
UPDATE whatevertable
SET something = 'newvalue',
whatevercolumn = whatevercolumn
WHERE someindex = 'indexvalue'
Điều này hoạt động với TIMESTAMP và DATETIME cột. (Trước MySQL phiên bản 5.6.5, nó chỉ hoạt động với TIMESTAMP s) Khi bạn sử dụng TIMESTAMP s, múi giờ được tính:trên máy chủ được định cấu hình chính xác, các giá trị đó luôn được lưu trữ trong UTC và được dịch sang giờ địa phương khi truy xuất.