【问题标题】:bulk create table in many databases in same server在同一台服务器的多个数据库中批量创建表
【发布时间】:2016-08-18 00:48:58
【问题描述】:

我想问一下是否有某种方法可以将具有相同架构的表添加到同一服务器中的多个数据库,以及是否可以添加例如在同一服务器中存在的许多数据库中再次指向特定表的列。是否有一些查询或不可能?

【问题讨论】:

  • 您可以使用内部information_schema 数据库中的表并创建批量语句。

标签: php mysql server


【解决方案1】:

创建表:

select group_concat(
  concat('create table `', db.schema_name, '`.X (a int, b int);') separator '\n'
) as qry
from information_schema.schemata db
where db.schema_name in ('test', 'test_db');

创建结果:

create table `test`.X (a int, b int);
create table `test_db`.X (a int, b int);

复制结果并执行。

创建批量 ALTER 查询的方法相同。

【讨论】:

  • 非常感谢您的快速回复。我有一些问题:schema_name 是我需要创建表的数据库的名称('test',test_db),.X 是表的名称,a,b 是列?
  • 正确。您可以使用其他条件,例如where db.schema_name like 'project_%'。但我认为白名单是完成这项关键任务的更好方法。
猜你喜欢
  • 2014-10-28
  • 1970-01-01
  • 1970-01-01
  • 2019-11-25
  • 2013-10-31
  • 1970-01-01
  • 2020-07-07
  • 2021-07-18
  • 1970-01-01
相关资源
最近更新 更多