Chinaunix

标题: 有没有好的办法比对同一个库下两个表的机构 [打印本页]

作者: stupid_lee    时间: 2017-02-26 15:58
标题: 有没有好的办法比对同一个库下两个表的机构
情景是这样的

一个库下面会有一个table表
程序会不定时创建一个talbe_[n]表,程序里写死了创建table_1的建表语句,就是最原始的table表
但table表会不定时更新表结构,导致table_[n]表们也需要同步更新

不知道有什么好的办法没

作者: moperyblue    时间: 2017-02-26 17:52

table_[n]表们数据量大吗? 表数据要保留吗?
作者: stupid_lee    时间: 2017-02-26 17:54
回复 2# moperyblue

表数据肯定是要保留的,n的数字在1~100之内
作者: moperyblue    时间: 2017-02-26 18:22
回复 3# stupid_lee


table表结构是你这边维护吗? 如果不是 只能定时比较table表和table_1的表结构 如果发现表结构不一致 则
1.备份table_1数据
2.按table表结构重新建新表table_1
3.将table_1备份表的数据复制到新表table_1

作者: stupid_lee    时间: 2017-02-26 18:42
回复 4# moperyblue

就是很蛋疼,这样搞步骤就很多了  
作者: moperyblue    时间: 2017-02-26 19:09
回复 5# stupid_lee

没办法 是比较麻烦 希望有更便捷的方案出现
作者: seesea2517    时间: 2017-02-27 16:15
回复 1# stupid_lee

如果说只需要管最新创建的表是最新的table表结构的话,程序里的语句改为以 table 表为标准而不是固定的建表语句应该是比较方便的方法,有一个 create table like 的语句可以参考一下。

作者: chengchow    时间: 2017-02-27 18:16
用触发器做
作者: hello_ketty    时间: 2017-03-12 21:04
可以监听table 表的binlog ,将binlog中直行alter table 的语句在分表中同步直行即可
作者: lyhabc    时间: 2017-04-27 16:50
回复 9# hello_ketty

监听binlog不太实际,如果数据库压力非常大,binlog文件很多
作者: chenfeng    时间: 2017-08-11 16:21
可以试试MySQL管理工具MySQL Utilities的mysqldiff




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2