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

MySQL ON UPDATE CURRENT_TIMESTAMP không cập nhật

Bạn đã thử sử dụng null cho trường đó khi cập nhật chưa?

Bạn cũng có thể thử đặt giá trị mặc định thành CURRENT_TIMESTAMP , thay vì 0000-00-00 00:00:00 .

Tuy nhiên, bất cứ khi nào tôi muốn có thời gian tạo và cập nhật, tôi luôn sử dụng những thứ sau:

...
CREATED timestamp NOT NULL default '0000-00-00 00:00:00',
UPDATED timestamp NOT NULL default now() on update now(),
....

Tôi sử dụng now() , vì là bí danh cho CURRENT_TIMESTAMP và nó ngắn hơn. Cuối cùng, cấu trúc bảng nhận được CURRENT_TIMESTAMP , vì vậy đừng lo lắng.

Thủ thuật với CREATED trường cần nhớ sử dụng null trên cả hai trường cho INSERT câu lệnh, cho UPDATE câu lệnh không bắt buộc:

INSERT INTO mytable (field1, field2, created, updated)
VALUES ('foo', 'bar', null, null);


  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âu lệnh chuẩn bị multi_query trong PHP MySQLi

  2. Làm thế nào để hợp nhất hai cơ sở dữ liệu, với cùng một dữ liệu, nhưng có các PK khác nhau, mà không có các trường trùng lặp?

  3. ADDTIME () trả về thời gian 24 giờ

  4. Chuyển đổi mã MySQL thành Access:GROUP_CONCAT và một bộ ba JOIN

  5. kiểm tra mục nhập trùng lặp so với sử dụng kết quả PDO errorInfo