设置主数据库以控制其他数据库的结构

我有一个案例,我在同一台服务器上运行了几个数据库。每个客户端(company1,company2等)都有一个数据库。每个数据库的结构应该与相同的表等相同,但每个数据库中包含的数据将是不同的。 我想要做的是保留一个不包含数据的主数据库,但管理所有其他数据库的结构,这意味着如果我添加,删除或更改主数据库中的任何表,更改也将镜像到另一个数据库。 示例:如果在主数据库中创建了名为Table1的表,则其他数据库(company1,company2等)也将获得table1。 目前,它由一个脚本完成,该脚本监视数据库日志以查找对master数据库所做的更改,并在每个其他数据库上运行相同的查询。看看数据库复制,但从我的理解,这也将带来master数据库中的数据,在这种情况下这不是一个选项。 我可以使用某种逻辑来对付数据库模式吗? 基本上我在这里问的是: 如何以最佳方式实现此同步?我是否应该使用监视日志的脚本进行更改或其他方法? 如果表被更改,如何避免现有数据损坏? (如果表被删除,数据会被删除) 从主数据库同步被认为是一种做我想做的好方法(在几个数据库中具有易于维护的结构)? 如何进行这样的更新会影响数据库的性能? 希望我的问题很清楚,这不是其他线程的重复。如果需要更多信息和/或更好地解释我的问题,请告诉我:)     
已邀请:
您可以使用以下命令获取给定模式的表列表:
select TABLE_NAME from information_schema.tables where TABLE_SCHEMA='<master table name>';
将此列表用于脚本或存储过程ala:
create database if not exists <name>;
use <name>;
for each ( table_name in list )
    create table if not exists <name>.table_name like <master_table>.table_name;
现在我想到了你可能会在'information_schema.tables'数据库上设置一个触发器来调用'create / maintain'脚本。寻找插入物并做出相应的反应。     

要回复问题请先登录注册