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