是否可以创建一个视图来在mysql中调用存储过程?
我大约有20个不同的数据库,需要将它们合并在一起,并且需要基于该数据库进行报告。
查询与所有数据库完全相似。
我显然可以通过创建跨所有数据库的视图来实现此目的,例如:
SELECT "1234" as project_id, name as company_name
FROM [db.a].companies
UNION ALL
SELECT "4321" as project_id, name as company_name
FROM [db.b].companies
但是,我想知道是否可以使用存储过程来发送db_name参数。我创建了一个:
BEGIN
SET @query = CONCAT('
SELECT ',project_id,' as project_id,
name as company_name
FROM ',db,'.companies
');
SELECT @query;
PREPARE stmt from @query;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END
那么显然我可以叫它
CALL `list_companies`('db_abcd','1234')
现在,我无法将此“通话”另存为视图。而我确实需要有一个视图,以便PowerBI可以使用它们。
如何执行此操作?有其他选择吗?