色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql 時間戳作為默認(rèn)值

謝彥文1年前7瀏覽0評論

MySQL中的時間戳是指一個包含日期和時間的數(shù)值,可以用于記錄數(shù)據(jù)庫中的數(shù)據(jù)創(chuàng)建和修改時間。對于一個表中的行,我們可以為某些列指定時間戳作為默認(rèn)值,這樣當(dāng)向該表插入數(shù)據(jù)時,如果該列沒有明確指定值,就會自動設(shè)置為當(dāng)前時間戳。

CREATE TABLE example (
id int NOT NULL PRIMARY KEY AUTO_INCREMENT,
name varchar(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

在上面的例子中,我們創(chuàng)建了一個名為example的表,其中包含了四個列:idnamecreated_atupdated_at。在創(chuàng)建這兩個時間戳列時,我們使用了默認(rèn)值來指定它們的初始值。

created_at列中使用的默認(rèn)值CURRENT_TIMESTAMP表示當(dāng)前時間戳,如果我們向該表中插入一行數(shù)據(jù),并未對created_at明確指定值,那么這個列就會自動設(shè)置為當(dāng)前時間戳值。

updated_at列中使用的默認(rèn)值CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP則稍微有點復(fù)雜。它的意思是,當(dāng)該行數(shù)據(jù)被更新時,updated_at列的值將自動更新為當(dāng)前時間戳。例如,如果我們更新了該表中某一行的name列的值,那么updated_at列的值也將被更新為當(dāng)前時間戳。

需要注意的是,在MySQL 5.6.5及以前的版本中,如果某一行數(shù)據(jù)的任意一個列被更新,它的時間戳列將會被更新。但是,從MySQL 5.6.5開始,可以使用ON UPDATE子句來指定僅在特定列更新時才更新時間戳列。