Đư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.