MySQL 中,默認值無法使用函數 也就是你無法 設置某一列,默認值是 NOW () 這樣的處理 假如需要 某列的默認值爲 當前數據庫時間,那麼可以使用 TIMESTAMP 數據類型。插入的時候,忽略該列 即可。 dt TIMESTAMP 等價於 dt TIMESTAMP default CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP create table testB ( id int PRIMARY KEY, val varchar(10), dt TIMESTAMP ); INSERT INTO testB(id, val) VALUES(1, 'A'); INSERT INTO testB(id, val) VALUES(2, 'B'); SELECT * FROM testB; +----+------+---------------------+ | id | val | dt | +----+------+---------------------+ | 1 | A | 2013-03-21 14:24:20 | | 2 | B | 2013-03-21 14:24:21 | +----+------+---------------------+ 2 rows in set (0.00 sec) UPDATE testB SET val = 'C' WHERE id = 1; SELECT * FROM testB; +----+------+---------------------+ | id | val | dt | +----+------+---------------------+ | 1 | C | 2013-03-21 14:28:02 | | 2 | B | 2013-03-21 14:24:21 | +----+------+---------------------+ 2 rows in set (0.00 sec) 假如僅僅需要 插入時記錄時間, 更新的時候不需要, 那麼需要修改表定義方式: TIMESTAMP not null default CURRENT_TIMESTAMP create table testC ( id int PRIMARY KEY, val varchar(10), dt TIMESTAMP not null default CURRENT_TIMESTAMP ); INSERT INTO testC(id, val) VALUES(1, 'A'); INSERT INTO testC(id, val) VALUES(2, 'B'); SELECT * FROM testC; +----+------+---------------------+ | id | val | dt | +----+------+---------------------+ | 1 | A | 2013-03-21 14:35:12 | | 2 | B | 2013-03-21 14:35:13 | +----+------+---------------------+ 2 rows in set (0.00 sec) UPDATE testC SET val = 'CC' WHERE id = 1; SELECT * FROM testC; +----+------+---------------------+ | id | val | dt | +----+------+---------------------+ | 1 | CC | 2013-03-21 14:35:12 | | 2 | B | 2013-03-21 14:35:13 | +----+------+---------------------+ 2 rows in set (0.00 sec)
MySQL 中,默認值時間函數
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.