Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Dấu thời gian (tự động) được cập nhật khi nào?

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Có cách nào để khôi phục sau khi cam kết trong MySQL không?

  2. Left Outer Join không trả về tất cả các hàng từ bảng bên trái của tôi?

  3. Cách kết nối PHP với MySQL

  4. Tìm số lượng cột EMPTY hoặc NULL trong bảng MySQL

  5. Lợi ích của zerofill trong MySQL là gì?