MySQL中的timestamp類型是一種時(shí)間類型,它可以存儲(chǔ)從1970年1月1日的秒數(shù)。它是一種有用的數(shù)據(jù)類型,用于記錄對(duì)數(shù)據(jù)執(zhí)行任何更改的時(shí)間戳。timestamp類型具有一個(gè)默認(rèn)值,當(dāng)在表格中創(chuàng)建列時(shí)未指定任何值時(shí),它將自動(dòng)創(chuàng)建。默認(rèn)情況下,MySQL會(huì)將 timestamp 字段的默認(rèn)值設(shè)置為當(dāng)前時(shí)間。
CREATE TABLE mytable (
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(50) 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)
);
在代碼示例中,我們可以看到兩個(gè)timestamp類型的列“created_at”和“updated_at”。這里的"created_at" 帶有默認(rèn)時(shí)間戳CURRENT_TIMESTAMP,指定在插入行時(shí)如果我們不提供任何值,則MySQL會(huì)在列中插入當(dāng)前時(shí)間戳。另一個(gè)列“updated_at”帶有DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP標(biāo)記,這意味著每當(dāng)該行/列更新時(shí),此列都將更新為當(dāng)前日期和時(shí)間戳。
當(dāng)我們插入一行數(shù)據(jù)時(shí),如果我們沒有指定“created_at”屬性的值,系統(tǒng)將自動(dòng)插入當(dāng)前時(shí)間戳。
INSERT INTO mytable (name) VALUES ('John');
上面的例子將“name”'John'插入名為'mytable'的表格,而“created_at”將使用當(dāng)前時(shí)間來自動(dòng)填充。
這是一個(gè)非常有用的功能,因?yàn)樗梢杂涗洈?shù)據(jù)何時(shí)被添加/更新,這對(duì)于數(shù)據(jù)分析,調(diào)試和回溯非常重要。