Embora exista uma resposta aceita, não acho que seja a correta. É a maneira mais simples de conseguir o que é necessário, mas mesmo se já estiver ativado no InnoDB (na verdade, os documentos dizem que você ainda deve receber NULL ...), se você ler os documentos do MySQL , mesmo na versão atual (8.0), usando UPDATE_TIME é Não é a opção certa, porque:
Os carimbos de data e hora não são mantidos quando o servidor é reiniciado ou quando a tabela é removida do cache do dicionário de dados do InnoDB.
Se eu entendi corretamente (não é possível verificá-lo em um servidor no momento), o carimbo de data e hora é redefinido após a reinicialização do servidor.
Quanto às soluções reais (e, bem, caras), você tem a solução de Bill Karwin com CURRENT_TIMESTAMP e eu gostaria de propor uma solução diferente, baseada em gatilhos (estou usando essa).
Você começa criando uma tabela separada (ou talvez você tenha alguma outra tabela que possa ser usada para essa finalidade) que funcionará como um armazenamento para variáveis globais (aqui registros de data e hora). Você precisa armazenar dois campos - nome da tabela (ou qualquer valor que você queira manter aqui como ID da tabela) e carimbo de data e hora. Depois de ter, você deve inicializá-lo com este ID de tabela + data de início (NOW () é uma boa opção :)).
Agora, você passa para as tabelas que deseja observar e adiciona gatilhos APÓS INSERT / UPDATE / DELETE com este ou outro procedimento semelhante:
CREATE PROCEDURE `timestamp_update` ()
BEGIN
UPDATE `SCHEMA_NAME`.`TIMESTAMPS_TABLE_NAME`
SET `timestamp_column`=DATE_FORMAT(NOW(), '%Y-%m-%d %T')
WHERE `table_name_column`='TABLE_NAME';
END