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

Кога се актуализира времевия печат (автоматично)?

Дайте командата SHOW CREATE TABLE whatever

След това вижте дефиницията на таблицата .

Вероятно има линия като тази

logtime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

в него. DEFAULT CURRENT_TIMESTAMP означава, че всеки INSERT без изрична настройка за времеви печат използва текущото време. По същия начин ON UPDATE CURRENT_TIMESTAMP означава, че всяка актуализация без изрично времеви отпечатък води до актуализация на текущата стойност на времевата марка.

Можете да контролирате това поведение по подразбиране, когато създавате вашата таблица.

Или, ако колоната с клеймо за дата не е създадена правилно на първо място, можете да я промените.

ALTER TABLE whatevertable
     CHANGE whatevercolumn 
            whatevercolumn TIMESTAMP NOT NULL
                           DEFAULT CURRENT_TIMESTAMP 
                           ON UPDATE CURRENT_TIMESTAMP;

Това ще накара операциите INSERT и UPDATE в таблицата автоматично да актуализират колоната с времеви печат. Ако искате да актуализирате whatevertable без промяна на времевата марка, т.е.

тогава трябва да издадете този вид актуализация.

UPDATE whatevertable
   SET something = 'newvalue',
       whatevercolumn = whatevercolumn
 WHERE someindex = 'indexvalue'

Това работи с TIMESTAMP и DATETIME колони. (Преди версията на MySQL 5.6.5 той работеше само с TIMESTAMP s) Когато използвате TIMESTAMP s, часовите зони се отчитат:на правилно конфигурирана сървърна машина тези стойности винаги се съхраняват в UTC и се превеждат в местно време при извличане.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Преброяване на броя на извършените заявки

  2. групово вмъкване на списъчни стойности с SQLAlchemy Core

  3. MYSQL сървърът е изчезнал

  4. Как мога да оптимизирам функцията ORDER BY RAND() на MySQL?

  5. MySQL - Група и общо, но връща всички редове във всяка група