Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL ON UPDATE CURRENT_TIMESTAMP nie aktualizuje się

Czy próbowałeś użyć wartości null dla tego pola podczas aktualizacji?

Możesz także spróbować ustawić domyślną wartość na CURRENT_TIMESTAMP , a nie 0000-00-00 00:00:00 .

Niemniej jednak, gdy chcę mieć czas na tworzenie i aktualizację, zawsze używam:

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

Używam now() , ponieważ jest aliasem dla CURRENT_TIMESTAMP i jest krótszy. Na koniec struktura tabeli otrzymuje CURRENT_TIMESTAMP , więc nie martw się.

Sztuczka z CREATED pole należy pamiętać o użyciu null w obu polach dla INSERT oświadczenia, dla UPDATE oświadczenia nie jest wymagane:

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. Pobieranie danych z wielu tabel w jednym wierszu przy jednoczesnym łączeniu niektórych wartości

  2. Czy można przechowywać zdjęcia, dźwięki, filmy w bazie danych SQL?

  3. Wydajność SELECT vs UPDATE z indeksem

  4. Dziwny problem Python+MySQLdb

  5. Wybierz N poprzednich i M następnych pozycji wokół bieżącego identyfikatora pozycji