Можно ли создать представление, которое вызывает хранимую процедуру в 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 мог их использовать.
Как это сделать?Есть ли альтернативы?