MySQL數(shù)據(jù)庫(kù)默認(rèn)時(shí)間戳是非常重要的概念,常常會(huì)用到。它主要用來(lái)記錄數(shù)據(jù)的創(chuàng)建時(shí)間和修改時(shí)間,方便我們進(jìn)行數(shù)據(jù)追蹤和管理。
CREATE TABLE `example` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
在上面的代碼中,我們可以看到兩個(gè)時(shí)間戳字段,created_at
和updated_at
。它們都有一個(gè)默認(rèn)值,分別是CURRENT_TIMESTAMP
和CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
。當(dāng)我們插入一條新數(shù)據(jù)時(shí),created_at
字段會(huì)自動(dòng)記錄當(dāng)前時(shí)間,而updated_at
字段的默認(rèn)值會(huì)被created_at
的值所覆蓋。當(dāng)我們更新一條記錄時(shí),updated_at
會(huì)自動(dòng)更新為當(dāng)前時(shí)間。
當(dāng)然,我們也可以手動(dòng)指定時(shí)間戳的值,例如在INSERT
語(yǔ)句中加入NOW()
函數(shù),或者在UPDATE
語(yǔ)句中手動(dòng)修改。但在大多數(shù)情況下,采用自動(dòng)時(shí)間戳是更加方便且實(shí)用的選擇。