#mysql
#mysql
Вопрос:
В MySQL
у меня есть три разные базы данных — давайте назовем их A
, B
и C
.
Возможно ли выполнить транзакцию с участием таблиц, которые находятся во всех трех базах данных ( A
, B
, C
)? (все базы данных находятся на одном сервере)
Ответ №1:
Да, вы можете. Это демонстрационный запрос:
select (SELECT count(*) FROM `A`.`tableInA`),
(SELECT count(*) FROM `B`.`tableInB`),
(SELECT count(*) FROM `C`.`tableInC`);
Еще один демонстрационный запрос:
SELECT * FROM `A`.`tableInA`
where fieldInA in (SELECT fieldInAB FROM `B`.`tableInB`
where fieldInB in (select fieldInBC from `C`.`tableInC`));
Комментарии:
1. @Harry Joy: спасибо. вы продемонстрировали запрос с использованием
SELECT
. Мой вопрос был в том, возможно ли выполнитьTRANSACTION
с участием (скажем) 3 баз данных?2. @user540009: да, ты можешь. Попробуйте и дайте мне знать.
3. @Harry Joy: спасибо. В таком случае имеет ли значение, какой движок используется для таблиц (
MyISAM
/InnoDB
)?4. @user540009: все должно быть в одном и том же.
5. @Harry Joy: имеется в виду, что все таблицы, участвующие в транзакции, должны иметь один и тот же движок (скажем,
InnoDB
)?