數(shù)據(jù)庫中的時(shí)間戳非常重要,因?yàn)樗鼈兛梢愿檾?shù)據(jù)庫中每一行數(shù)據(jù)的最后修改時(shí)間。MySQL 5.7 可以使用自動更新時(shí)間戳實(shí)現(xiàn)時(shí)間戳的自動更新。這意味著每當(dāng)行上的任何數(shù)據(jù)更改時(shí),時(shí)間戳將自動更新為當(dāng)前時(shí)間。
CREATE TABLE `mytable` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(100) 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 AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
在上面的示例中,我們定義了一個(gè)稱為“mytable”的表,并使用“created_at”和“updated_at”列來跟蹤每行數(shù)據(jù)的創(chuàng)建和更新時(shí)間。我們使用TIMESTAMP數(shù)據(jù)類型來定義時(shí)間戳列。
在“created_at”列中,我們使用DEFAULT CURRENT_TIMESTAMP來設(shè)置默認(rèn)值。這將使MySQL在插入新行時(shí)自動填充該列,并將其設(shè)置為當(dāng)前時(shí)間。在“updated_at”列中,我們使用DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP來設(shè)置默認(rèn)值。這將使MySQL在更新行時(shí)自動更新該列,并將其設(shè)置為當(dāng)前時(shí)間。
因此,每當(dāng)行上的數(shù)據(jù)更改時(shí),“updated_at”列將自動更新為當(dāng)前時(shí)間。這種自動更新時(shí)間戳的方法可以為需要跟蹤數(shù)據(jù)修改時(shí)間的應(yīng)用程序提供極大的幫助。