Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL ON UPDATE CURRENT_TIMESTAMP не се актуализира

Опитвали ли сте да използвате null за това поле при актуализиране?

Можете също да опитате да зададете стойност по подразбиране на CURRENT_TIMESTAMP , а не 0000-00-00 00:00:00 .

Въпреки това винаги, когато искам да имам време за създаване и актуализиране, винаги използвам следното:

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

Използвам now() , защото е псевдоним за CURRENT_TIMESTAMP и е по-кратък. В края структурата на таблицата получава CURRENT_TIMESTAMP , така че не се притеснявайте.

Трикът с CREATED поле е да запомните да използвате null и в двете полета за INSERT оператори, за UPDATE изявления не се изисква:

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. Незаконен микс от съпоставяне (utf8_unicode_ci,IMPLICIT) и (utf8_general_ci,IMPLICIT) за операция '='

  2. Изберете Множество идентификатори от таблица

  3. Защо MySQL връща същите резултати, докато използва RAND() в оператора SELECT?

  4. Как мога да видя конкретната стойност на sql_mode?

  5. Как работи функцията REGEXP_INSTR() в MySQL