首页 > mysql主从复制中, 若从库有额外字段, 如何设置其默认值

mysql主从复制中, 若从库有额外字段, 如何设置其默认值

现有一套mysql的主库从库, 均有表A:

CREATE TABLE `member` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `nickname` varchar(64) DEFAULT NULL COMMENT '昵称',
) ENGINE=InnoDB AUTO_INCREMENT=10000 DEFAULT CHARSET=utf8mb4

这时, 我在从库中, 给A表添加一个last_updated字段(主库中的表结构不变):

ALTER TABLE `member` ADD COLUMN `last_updated` timestamp NULL ON UPDATE CURRENT_TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '最后更新时间' AFTER `nickname`;

修改后变成了:
主库中表A有两个字段:id,nickname;
而从库中表A有3个字段:id,nickname,last_updated, 且每行数据的last_updated都被填充为现在的时间.

这样修改预期达到的效果是, 主库中表A数据的任何insertupdate操作, 主从同步, 对应的从库中的A表, 都会自动记录最后insertupdate的时间.

但实际观察发现:

请问这是为什么. 我本想在从库中, 利用last_updated字段做数据迁移的增量更新依据的, 现在发现没法做.


last_updated 类型:timestamp 默认值:CURRENT_TIMESTAMP
这个可以记录插入时间;
如果记录每次的更新时间,可以写个触发器来记录

【热门文章】
【热门文章】