Динамически запрашивать разные базы данных из хранимой процедуры из другой базы данных в Mysql - PullRequest
0 голосов
/ 29 января 2019

Я покрываю большую часть своего кода, который является бизнес-логикой в ​​хранимых процедурах.У меня есть одна основная база данных и отдельная база данных для каждого клиента.

Каждая база данных клиента содержит хранимые процедуры, которые необходимы для выполнения действий, относящихся к этой базе данных.

Теперь при таком подходе это очень сложносоздать базу данных для каждого нового клиента, кроме таблиц, для хранимой процедуры 50-60, которая реплицируется.С другой стороны, удобство обслуживания также требует много изменений, поскольку каждое изменение, которое я должен реплицировать на каждую базу данных SP.

Итак, я думаю сохранить эти хранимые процедуры в базе данных Master и вызвать их оттуда, как показано ниже:

SET @q = CONCAT('insert into ', _db,'.dbmaster (organizationid) values (',_org,');');
    PREPARE stmt FROM @q;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;

Но в этом подходе я должен обернуть каждый запрос, как этот, который опять-таки не в хорошее решение.

Так что я хочу сказать, как можно использовать имя переменной _db в качестве префикса в качестве имени базы данныхкак показано ниже:

insert into _db.dbmaster (organizationid) values (_org);

Пожалуйста, дайте мне знать, если есть какое-либо решение.

...