跨多个模式的mySQL查询

跨多个模式的mySQL查询,mysql,Mysql,我有一个多模式结构(所有模式都有相同的表) 下面是我如何获取所有模式的方法: select table_schema from information_schema.tables where table_name = 'messages' and TABLE_TYPE = 'BASE TABLE' 此查询用于跨两个表的“messages”表之间的联接- select *, '1' as customer from customer_1.messages union select *, '2'

我有一个多模式结构(所有模式都有相同的表)

下面是我如何获取所有模式的方法:

select table_schema from information_schema.tables where table_name = 'messages' and TABLE_TYPE = 'BASE TABLE'
此查询用于跨两个表的“messages”表之间的联接-

select *, '1' as customer from customer_1.messages union select *,  '2' as customer from customer_2.messages
如何对第一个查询中的所有模式使用执行上述查询?不需要加入。可以是任何有助于我跨所有模式返回结果的内容

注意:可能有5000-10000个模式

分隔符@@@1;
创建过程连接所有数据()
开始
设置@计数器:=0;
选择组_CONCAT('选择*,',
@计数器:=@计数器+1,
“作为来自”的客户,
表2.1.1-1,
“.信息”
分隔符“全部联合”)
来自信息\u schema.tables
其中表_name='messages'
表类型='基表'
转换为@sql;
从@sql准备stmt;
执行stmt;
滴制stmt;
结束
@@;
定界符;
调用join_all_数据;

我一点也不羡慕你。使用动态SQL(预先准备好的语句)。@Akina我可以查看任何资源/链接吗?我正在寻找一个纯粹的基于mySQL的解决方案。无法使用服务器语言生成该查询。但您可以创建存储过程,然后生成查询并执行它。你能使用程序吗?你已经得到了答案,这就是我的意思,类似的。由于某种原因无法执行。给出4个错误。使用mySQL 8。是否可以创建一个过程,然后在此基础上创建一个视图?@AlecSmart 1)答案已编辑-测试上一版本。2) 您是否重新分配了分隔符?3) 发布错误消息。@AlecSmart否,您不能将过程用作查询行源。11:49:09从@sql错误代码:1064准备stmt。您的SQL语法有错误;检查与MySQL服务器版本相对应的手册,以获得在第1行0.044秒处使用的接近“NULL”的正确语法