1. 程式人生 > >mysql 日期預設系統時間 mysql 預設值不支援函式

mysql 日期預設系統時間 mysql 預設值不支援函式

由於MySQL目前欄位的預設值不支援函式,所以以    create_time datetime default now()    的形式設定預設值是不可能的。    代替的方案是使用TIMESTAMP型別代替DATETIME型別。    TIMESTAMP列型別自動地用當前的日期和時間標記INSERT或UPDATE的操作。    如果有多個TIMESTAMP列,只有第一個自動更新。    自動更新第一個TIMESTAMP列在下列任何條件下發生:       1. 列值沒有明確地在一個INSERT或LOAD DATA INFILE語句中指定。       2. 列值沒有明確地在一個UPDATE語句中指定且另外一些的列改變值。(注意一個UPDATE設定一個列為它已經有的值,這將不引起TIMESTAMP列被更新,因為如果你設定一個列為它當前的值,MySQL為了效率而忽略更改。)       3
. 你明確地設定TIMESTAMP列為NULL.       4. 除第一個以外的TIMESTAMP列也可以設定到當前的日期和時間,只要將列設為NULL,或NOW()。    另外在5.0以上版本中也可以使用trigger來實現此功能。    create table test_time (     id int(11),     create_time datetime    );    delimiter |    create trigger default_datetime before insert on test_time      for each row         if new
.create_time is null then           set new.create_time = now();         end if;|    delimiter ;