MySQL:让表的时间字段在insert和update时自动更新
让字段自动更新为当前时间戳:
--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`;