MySQL:讓表的時間欄位在insert和update時自動更新
阿新 • • 發佈:2019-01-02
讓欄位自動更新為當前時間戳:
--insert時若不指定updated值,則插入當前時間
CREATE TABLE `test_update` (
`id` int(32) NOT NULL,
`updated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--insert時和update時若不指定updated值,則插入當前時間
CREATE TABLE `test_update` (
`id` int(32) NOT NULL,
`updated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--insert時若不指定updated值,則為NULL;update時若不指定updated值,則插入當前時間
CREATE TABLE `test_update` (
`id` int(32) NOT NULL,
`updated` timestamp NULL ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
timestamp型別只用來儲存建立時間和更新時間,因為可以自動更新,不需要程式裡來處理。
一般的時間用varchar儲存比較好處理。
新增一個新欄位:
ALTER TABLE `toll_station` ADD COLUMN
`update_time` timestamp NOT NULL
DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP
COMMENT '記錄資料更新時間,自動更新,不要手動修改'
AFTER `status`;