Meskipun ada jawaban yang diterima saya tidak merasa itu adalah jawaban yang tepat. Ini adalah cara paling sederhana untuk mencapai apa yang dibutuhkan, tetapi bahkan jika sudah diaktifkan di InnoDB (sebenarnya dokumen memberi tahu Anda bahwa Anda masih harus mendapatkan NULL ...), jika Anda membaca dokumen MySQL , bahkan dalam versi saat ini (8.0) menggunakan UPDATE_TIME adalah bukan opsi yang tepat, karena:
Stempel waktu tidak bertahan saat server dihidupkan ulang atau saat tabel diusir dari cache kamus data InnoDB.
Jika saya mengerti dengan benar (tidak dapat memverifikasinya di server sekarang), timestamp akan diatur ulang setelah server restart.
Adapun solusi nyata (dan, juga, mahal), Anda memiliki Bill Karwin solusi dengan CURRENT_TIMESTAMP dan saya ingin mengusulkan satu yang berbeda, yang didasarkan pada pemicu (Saya menggunakan yang satu).
Anda mulai dengan membuat tabel terpisah (atau mungkin Anda memiliki beberapa tabel lain yang dapat digunakan untuk tujuan ini) yang akan berfungsi seperti penyimpanan untuk variabel global (di sini cap waktu). Anda perlu menyimpan dua bidang - nama tabel (atau nilai apa pun yang ingin Anda simpan di sini sebagai id tabel) dan cap waktu. Setelah Anda memilikinya, Anda harus menginisialisasi dengan tabel ini id + tanggal mulai (SEKARANG () adalah pilihan yang baik :)).
Sekarang, Anda pindah ke tabel yang ingin Anda amati dan tambahkan pemicu SETELAH INSERT / UPDATE / HAPUS dengan prosedur ini atau yang serupa:
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